summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/TargetOptionsImpl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use function attribute "trap-func-name" and remove TargetOptions::TrapFuncName.Akira Hatanaka2015-07-021-7/+0
| | | | | | | | | | | | | | | | | | This commit changes normal isel and fast isel to read the user-defined trap function name from function attribute "trap-func-name" attached to llvm.trap or llvm.debugtrap instead of from TargetOptions::TrapFuncName. This is needed to use clang's command line option "-ftrap-function" for LTO and enable changing the trap function name on a per-call-site basis. Out-of-tree projects currently using TargetOptions::TrapFuncName to specify the trap function name should attach attribute "trap-func-name" to the call sites of llvm.trap and llvm.debugtrap instead. rdar://problem/21225723 Differential Revision: http://reviews.llvm.org/D10832 llvm-svn: 241305
* Remove NoFramePointerElim and NoFramePointerElimOverride from TargetOptions andAkira Hatanaka2015-05-261-27/+0
| | | | | | | | | | remove ExecutionEngine's dependence on CodeGen. NFC. This is a follow-up to r238080. Differential Revision: http://reviews.llvm.org/D9830 llvm-svn: 238244
* Stop resetting NoFramePointerElim in TargetMachine::resetTargetOptions.Akira Hatanaka2015-05-231-9/+19
| | | | | | | | | | | | | | This is part of the work to remove TargetMachine::resetTargetOptions. In this patch, instead of updating global variable NoFramePointerElim in resetTargetOptions, its use in DisableFramePointerElim is replaced with a call to TargetFrameLowering::noFramePointerElim. This function determines on a per-function basis if frame pointer elimination should be disabled. There is no change in functionality except that cl:opt option "disable-fp-elim" can now override function attribute "no-frame-pointer-elim". llvm-svn: 238080
* Simplify and rename function overrideFunctionAttributes. NFC.Akira Hatanaka2015-05-231-0/+20
| | | | | | | This is in preparation to making changes needed to stop resetting NoFramePointerElim in resetTargetOptions. llvm-svn: 238079
* Remove CFIFuncName from TargetOptions as it is currently unused.Eric Christopher2015-04-191-6/+0
| | | | llvm-svn: 235268
* Remove the CFIEnforcing flag from TargetOptions as it is unused.Eric Christopher2015-04-191-2/+1
| | | | llvm-svn: 235267
* Migrate ABIName to MCTargetOptions so that it can be shared betweenEric Christopher2015-01-141-7/+0
| | | | | | the TargetMachine level and the MC level. llvm-svn: 225891
* Add a new string member to the TargetOptions struct for the nameEric Christopher2014-12-181-0/+7
| | | | | | | | | | | | | of the abi we should be using. For targets that don't use the option there's no change, otherwise this allows external users to set the ABI via string and avoid some of the -backend-option pain in clang. Use this option to move the ABI for the ARM port from the Subtarget to the TargetMachine and update the testcases accordingly since it's no longer valid to set via -mattr. llvm-svn: 224492
* Add Forward Control-Flow Integrity.Tom Roeder2014-11-111-0/+7
| | | | | | | | | | | | | | | | | | | | This commit adds a new pass that can inject checks before indirect calls to make sure that these calls target known locations. It supports three types of checks and, at compile time, it can take the name of a custom function to call when an indirect call check fails. The default failure function ignores the error and continues. This pass incidentally moves the function JumpInstrTables::transformType from private to public and makes it static (with a new argument that specifies the table type to use); this is so that the CFI code can transform function types at call sites to determine which jump-instruction table to use for the check at that site. Also, this removes support for jumptables in ARM, pending further performance analysis and discussion. Review: http://reviews.llvm.org/D4167 llvm-svn: 221708
* Re-sort all of the includes with ./utils/sort_includes.py so thatChandler Carruth2014-01-071-1/+1
| | | | | | | | | | subsequent changes are easier to review. About to fix some layering issues, and wanted to separate out the necessary churn. Also comment and sink the include of "Windows.h" in three .inc files to match the usage in Memory.inc. llvm-svn: 198685
* Check only if we have this attribute. If it's not an attribute, then it's ↵Bill Wendling2013-08-221-4/+2
| | | | | | assumed false. llvm-svn: 189063
* Replace the "NoFramePointerElimNonLeaf" target option with a function attribute.Bill Wendling2013-07-251-0/+4
| | | | | | | | There's no need to specify a flag to omit frame pointer elimination on non-leaf nodes...(Honestly, I can't parse that option out.) Use the function attribute stuff instead. llvm-svn: 187093
* This is now a duplicate.Bill Wendling2013-06-191-26/+0
| | | | llvm-svn: 184376
* Make the comparison operators non-member functions.Bill Wendling2013-06-191-2/+2
| | | | llvm-svn: 184373
* Remove exception handling support from the old JIT.Rafael Espindola2013-05-071-1/+0
| | | | llvm-svn: 181354
* Use the target options specified on a function to reset the back-end.Bill Wendling2013-04-051-0/+26
| | | | | | | | During LTO, the target options on functions within the same Module may change. This would necessitate resetting some of the back-end. Do this for X86, because it's a Friday afternoon. llvm-svn: 178917
* Move parts of lib/Target that use CodeGen into lib/CodeGen.Nick Lewycky2011-12-151-0/+52
llvm-svn: 146702
OpenPOWER on IntegriCloud