aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/BackendUtil.cpp
AgeCommit message (Collapse)Author
2012-03-01Add a flag -fthread-sanitizer.Kostya Serebryany
This flag enables ThreadSanitizer instrumentation committed to llvm as r150423. The patch includes one test for -fthread-sanitizer and one similar test for -faddress-sanitizer. This patch does not modify the linker flags (as we do it for -faddress-sanitizer) because the run-time library is not yet committed and it's structure in compiler-rt is not 100% clear. The users manual wil be changed in a separate commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151846 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-29Allocate TargetLibraryInfo for the CodeGen passes. Otherwise, it's instantiatedChad Rosier
by the BAA pass, which uses the default TargetLibraryInfo constructor. Unfortunately, the default TargetLibraryInfo constructor assumes all library calls are available and thus ignores -fno-builtin. rdar://10947759 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151745 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-25Prevent llvm.lifetime intrinsics from being emitted at -O0.Chad Rosier
rdar://10921594 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151430 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-07Make use of const-correct ParseCommandLineOptionsDavid Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150000 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-07Reserve a moderate amount of space for the back-end arguments.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149973 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-03Fix -ftrap-function fallout from llvm r145714. <rdar://problem/10799325>Bob Wilson
That llvm change removed the -trap-func backend option, so that using -ftrap-function with clang would cause the backend to complain. Fix it by adding the trap function name to the CodeGenOptions and passing it through to the TargetOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149679 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-23Add support for -fno-optimize-sibling-calls. Currently only implemented in theNick Lewycky
X86 backend in LLVM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148689 91177308-0d34-0410-b5e6-96231b3b80d8
2012-01-17Enable the new ObjC ARC autorelease pool elimination pass.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148331 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-14Per discussion on the list, remove BitcodeVerify pass to reimplement as a ↵Chad Rosier
free function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146530 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-12Add frontend flags to enable bitcode verifier pass.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146441 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-06Stack realignment is a tristate. Add -mno-stackrealign to turn off all stackNick Lewycky
realignment, even with locals with alignment exceeding the ABI guarantee. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145909 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-05Add -mstack-alignment=X and fix -mstackrealign handling now that theJoerg Sonnenberger
backend options are gone. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145868 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-02Update for change to LLVM TargetMachine API in r145714.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145715 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-30make asan work at -O0, clang part. Patch by glider@google.comKostya Serebryany
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145531 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-22implement __has_feature(address_sanitizer); also use ↵Kostya Serebryany
LangOpts.AddressSanitizer instead of CodeGenOpts.AddressSanitizer git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145054 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-16Add -f[no-]address-sanitizer flagKostya Serebryany
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144800 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-16Match LLVM API change.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144789 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-31Turn on the new .file directive when appropriate, instead of turning it off.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143327 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-17Wire up support for the controlling the extended dwarf .file directive. WithNick Lewycky
r142300 but not this patch, clang -S may emit .s files that assemblers other than llvm-mc can't parse. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142301 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-25Rename Diagnostic to DiagnosticsEngine as per issue 5397David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140478 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-26[driver] Add -mglobal-merge/-mno-global-merge machine options to ↵Chad Rosier
enable/disable merging of globals during codegen. Fixes <rdar://problem/10017909>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138612 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-24Match LLVM change: TargetRegistry and TargetSelect have been moved to Support.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138451 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-02Update for LLVM change in PassManagerBuilder.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136728 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-20Unbreak build after API change.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135585 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-19Match createTargetMachine API change.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135469 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-05Add the ObjC ARC optimization passes manually, now that they're notDan Gohman
hardwired into the default pass list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134445 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-30createTargetMachine now takes a CPU string.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134128 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-29SubtargetFeature.h has been moved to MC.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134050 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-21Add support for -Wa,--noexecstack when building from a non-assembly file. ForNick Lewycky
an assembly file it worked correctly, while for a .c file it would given an error about how --noexecstack is not a supported argument to -Wa. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133489 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-25Update for llvm api change.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132034 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-21adjust to mainline api change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131815 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-21switch clang off StandardPasses.h onto PassManagerBuilder.hChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131808 91177308-0d34-0410-b5e6-96231b3b80d8
2011-05-17Conditionalize the use of 4.4 or 4.2 format based on the target.Bill Wendling
<rdar://problem/8107317> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131504 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-30Implement -fno-dwarf2-cfi-asm.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130616 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-29Add -Oz option and use it to set the inline threshold to 25.Bob Wilson
Radar 9333566. Patch by Chad Rosier! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130554 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-21Wire up the -ftest-coverage and -fprofile-arcs flags to .gcno file emission (atNick Lewycky
compile time) and .gcda emission (at runtime). --coverage enables both. This does not yet add the profile_rt library to the link step if -fprofile-arcs is enabled when linking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129956 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Added *hidden* flags -print-options and -print-all-options soAndrew Trick
developers can see if their driver changed any cl::Option's. The current implementation isn't perfect but handles most kinds of options. This is nice to have when decomposing the stages of compilation and moving between different drivers. It's also a good sanity check when comparing results produced by different command line invocations that are expected to produce the comparable results. Note: This is not an attempt to prolong the life of cl::Option. On the contrary, it's a placeholder for a feature that must exist when cl::Option is replaced by a more appropriate framework. A new framework needs: a central option registry, dynamic name lookup, non-global containers of option values (e.g. per-module, per-function), *and* the ability to print options values and their defaults at any point during compilation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128911 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05whitespaceAndrew Trick
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128908 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-05Set AAPCS-VFP calling convention accordingly and hard float ABI command ↵Sandeep Patel
handling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128866 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-28Integrated-As: Support -Wa,-L when using the integrated assembler.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128433 91177308-0d34-0410-b5e6-96231b3b80d8
2011-03-22Frontend: Add a more explicit -backend-option flag for passing backend commandDaniel Dunbar
line options, instead of leveraging the blanket -mllvm option. - This allows using the frontend itself without requiring the backend have those options available (i.e., if the target wasn't built). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128087 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18If -fno-builtin is passed, tell TargetLibraryInfo toChris Lattner
turn off all builtin optimizations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125979 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18install a TargetLibraryInfo configured with the appropriate Chris Lattner
target triple. This would be a decent place to add -fno-builtin info for example. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125971 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04Implement -cl-mad-enablePeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120881 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04Implement -cl-unsafe-math-optimizationsPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120879 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-04Implement -cl-finite-math-onlyPeter Collingbourne
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120878 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-17IRgen: Change CodeGenPasses to be a PassManager, so it can have CallGraphSCC orDaniel Dunbar
Module. Patch by Mike Gist! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114171 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-01Driver/IRgen: Add support for -momit-leaf-frame-pointer.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107367 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-15Move CodeGenOptions.h *back* into Frontend. This should have been done when theChandler Carruth
dependency edge was reversed such that CodeGen depends on Frontend. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106065 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-15Break Frontend's dependency on Rewrite, Checker and CodeGen in shared ↵Daniel Dunbar
library configuration Currently, all AST consumers are located in the Frontend library, meaning that in a shared library configuration, Frontend has a dependency on Rewrite, Checker and CodeGen. This is suboptimal for clients which only wish to make use of the frontend. CodeGen in particular introduces a large number of unwanted dependencies. This patch breaks the dependency by moving all AST consumers with dependencies on Rewrite, Checker and/or CodeGen to their respective libraries. The patch therefore introduces dependencies in the other direction (i.e. from Rewrite, Checker and CodeGen to Frontend). After applying this patch, Clang builds correctly using CMake and shared libraries ("cmake -DBUILD_SHARED_LIBS=ON"). N.B. This patch includes file renames which are indicated in the patch body. Changes in this revision of the patch: - Fixed some copy-paste mistakes in the header files - Modified certain aspects of the coding to comply with the LLVM Coding Standards git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106010 91177308-0d34-0410-b5e6-96231b3b80d8