diff options
author | ed <ed@FreeBSD.org> | 2009-06-03 13:29:08 +0000 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2009-06-03 13:29:08 +0000 |
commit | 48ecc7affef226b2bac1e08bdfdc059306a1734c (patch) | |
tree | 4075b1f9165f6c8d2b9a7e98b89a1348669f78fe /lib/Frontend | |
parent | f27e5a09a0d815b8a4814152954ff87dadfdefc0 (diff) | |
download | FreeBSD-src-48ecc7affef226b2bac1e08bdfdc059306a1734c.zip FreeBSD-src-48ecc7affef226b2bac1e08bdfdc059306a1734c.tar.gz |
Import Clang, at r72770.
Diffstat (limited to 'lib/Frontend')
-rw-r--r-- | lib/Frontend/Backend.cpp | 21 | ||||
-rw-r--r-- | lib/Frontend/PCHWriter.cpp | 1 |
2 files changed, 19 insertions, 3 deletions
diff --git a/lib/Frontend/Backend.cpp b/lib/Frontend/Backend.cpp index 44aa3a8..697ba94 100644 --- a/lib/Frontend/Backend.cpp +++ b/lib/Frontend/Backend.cpp @@ -294,10 +294,16 @@ void BackendConsumer::CreatePasses() { PM->add(createPruneEHPass()); // Remove dead EH info PM->add(createFunctionAttrsPass()); // Set readonly/readnone attrs } - if (CompileOpts.InlineFunctions) + switch (CompileOpts.Inlining) { + case CompileOptions::NoInlining: + break; + case CompileOptions::NormalInlining: PM->add(createFunctionInliningPass()); // Inline small functions - else + break; + case CompileOptions::OnlyAlwaysInlining: PM->add(createAlwaysInlinerPass()); // Respect always_inline + break; + } if (CompileOpts.OptimizationLevel > 2) PM->add(createArgumentPromotionPass()); // Scalarize uninlined fn args if (CompileOpts.SimplifyLibCalls) @@ -341,7 +347,16 @@ void BackendConsumer::CreatePasses() { if (CompileOpts.OptimizationLevel > 1 && CompileOpts.UnitAtATime) PM->add(createConstantMergePass()); // Merge dup global constants } else { - PM->add(createAlwaysInlinerPass()); + switch (CompileOpts.Inlining) { + case CompileOptions::NoInlining: + break; + case CompileOptions::NormalInlining: + PM->add(createFunctionInliningPass()); // Inline small functions + break; + case CompileOptions::OnlyAlwaysInlining: + PM->add(createAlwaysInlinerPass()); // Respect always_inline + break; + } } } diff --git a/lib/Frontend/PCHWriter.cpp b/lib/Frontend/PCHWriter.cpp index 9f9b3b4..80e863b 100644 --- a/lib/Frontend/PCHWriter.cpp +++ b/lib/Frontend/PCHWriter.cpp @@ -347,6 +347,7 @@ void PCHWriter::WriteBlockInfoBlock() { // PCH Top-Level Block. BLOCK(PCH_BLOCK); + RECORD(ORIGINAL_FILE_NAME); RECORD(TYPE_OFFSET); RECORD(DECL_OFFSET); RECORD(LANGUAGE_OPTIONS); |