Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 //===-- Module.cpp - Implement the Module class ---------------------------===// | 1 //===-- Module.cpp - Implement the Module class ---------------------------===// |
| 2 // | 2 // |
| 3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 // | 9 // |
| 10 // This file implements the Module class for the IR library. | 10 // This file implements the Module class for the IR library. |
| 11 // | 11 // |
| 12 //===----------------------------------------------------------------------===// | 12 //===----------------------------------------------------------------------===// |
| 13 | 13 |
| 14 #include "llvm/IR/Module.h" | 14 #include "llvm/IR/Module.h" |
| 15 #include "SymbolTableListTraitsImpl.h" | 15 #include "SymbolTableListTraitsImpl.h" |
| 16 #include "llvm/ADT/DenseSet.h" | 16 #include "llvm/ADT/DenseSet.h" |
| 17 #include "llvm/ADT/STLExtras.h" | 17 #include "llvm/ADT/STLExtras.h" |
| 18 #include "llvm/ADT/SmallString.h" | 18 #include "llvm/ADT/SmallString.h" |
| 19 #include "llvm/ADT/StringExtras.h" | 19 #include "llvm/ADT/StringExtras.h" |
| 20 #include "llvm/IR/Constants.h" | 20 #include "llvm/IR/Constants.h" |
| 21 #include "llvm/IR/DerivedTypes.h" | 21 #include "llvm/IR/DerivedTypes.h" |
| 22 #include "llvm/IR/GVMaterializer.h" | 22 #include "llvm/IR/GVMaterializer.h" |
| 23 #include "llvm/IR/InstrTypes.h" | 23 #include "llvm/IR/InstrTypes.h" |
| 24 #include "llvm/IR/LLVMContext.h" | 24 #include "llvm/IR/LLVMContext.h" |
| 25 #include "llvm/IR/LeakDetector.h" | 25 #include "llvm/IR/LeakDetector.h" |
| 26 #include "llvm/Support/Dwarf.h" | 26 #include "llvm/Support/Dwarf.h" |
| 27 #include "llvm/Support/Path.h" | 27 #include "llvm/Support/Path.h" |
| 28 #include "llvm/Support/RandomNumberGenerator.h" | 28 #include "llvm/Support/RandomNumberGenerator.h" |
| 29 #include "llvm/Support/raw_ostream.h" | |
| 29 #include <algorithm> | 30 #include <algorithm> |
| 30 #include <cstdarg> | 31 #include <cstdarg> |
| 31 #include <cstdlib> | 32 #include <cstdlib> |
| 32 using namespace llvm; | 33 using namespace llvm; |
| 33 | 34 |
| 34 //===----------------------------------------------------------------------===// | 35 //===----------------------------------------------------------------------===// |
| 35 // Methods to implement the globals and functions lists. | 36 // Methods to implement the globals and functions lists. |
| 36 // | 37 // |
| 37 | 38 |
| 38 // Explicit instantiations of SymbolTableListTraits since some of the methods | 39 // Explicit instantiations of SymbolTableListTraits since some of the methods |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 387 bool Module::isDematerializable(const GlobalValue *GV) const { | 388 bool Module::isDematerializable(const GlobalValue *GV) const { |
| 388 if (Materializer) | 389 if (Materializer) |
| 389 return Materializer->isDematerializable(GV); | 390 return Materializer->isDematerializable(GV); |
| 390 return false; | 391 return false; |
| 391 } | 392 } |
| 392 | 393 |
| 393 bool Module::Materialize(GlobalValue *GV, std::string *ErrInfo) { | 394 bool Module::Materialize(GlobalValue *GV, std::string *ErrInfo) { |
| 394 if (!Materializer) | 395 if (!Materializer) |
| 395 return false; | 396 return false; |
| 396 | 397 |
| 398 errs() << "-> Module::Materialize\n"; | |
|
jvoung (off chromium)
2014/12/01 23:23:50
I assume these are for debugging -- can these be r
Karl
2014/12/03 18:32:10
Reverted and removed from CL.
| |
| 397 std::error_code EC = Materializer->Materialize(GV); | 399 std::error_code EC = Materializer->Materialize(GV); |
| 400 errs() << "<- Module::Materialize\n"; | |
| 398 if (!EC) | 401 if (!EC) |
| 399 return false; | 402 return false; |
| 400 if (ErrInfo) | 403 if (ErrInfo) |
| 401 *ErrInfo = EC.message(); | 404 *ErrInfo = EC.message(); |
| 402 return true; | 405 return true; |
| 403 } | 406 } |
| 404 | 407 |
| 405 void Module::Dematerialize(GlobalValue *GV) { | 408 void Module::Dematerialize(GlobalValue *GV) { |
| 406 if (Materializer) | 409 if (Materializer) |
| 407 return Materializer->Dematerialize(GV); | 410 return Materializer->Dematerialize(GV); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 454 return cast<ConstantInt>(Val)->getZExtValue(); | 457 return cast<ConstantInt>(Val)->getZExtValue(); |
| 455 } | 458 } |
| 456 | 459 |
| 457 Comdat *Module::getOrInsertComdat(StringRef Name) { | 460 Comdat *Module::getOrInsertComdat(StringRef Name) { |
| 458 Comdat C; | 461 Comdat C; |
| 459 StringMapEntry<Comdat> &Entry = | 462 StringMapEntry<Comdat> &Entry = |
| 460 ComdatSymTab.GetOrCreateValue(Name, std::move(C)); | 463 ComdatSymTab.GetOrCreateValue(Name, std::move(C)); |
| 461 Entry.second.Name = &Entry; | 464 Entry.second.Name = &Entry; |
| 462 return &Entry.second; | 465 return &Entry.second; |
| 463 } | 466 } |
| OLD | NEW |