aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/TargetOptionsImpl.cpp
AgeCommit message (Collapse)AuthorFilesLines
2020-07-24[DWARF] Avoid entry_values production for SCEDjordje Todorovic1-2/+6
SONY debugger does not prefer debug entry values feature, so the plan is to avoid production of the entry values by default when the tuning is SCE debugger. The feature still can be enabled with the -debug-entry-values option for the testing/development purposes. This patch addresses PR46643. Differential Revision: https://reviews.llvm.org/D83462
2020-03-19Reland D73534: [DebugInfo] Enable the debug entry values feature by defaultDjordje Todorovic1-0/+6
The issue that was causing the build failures was fixed with the D76164.
2020-03-13Revert "Reland "[DebugInfo] Enable the debug entry values feature by default""Nico Weber1-6/+0
This reverts commit 5aa5c943f7da155b95564058cd5d50a93eabfc89. Causes clang to assert, see https://bugs.chromium.org/p/chromium/issues/detail?id=1061533#c4 for a repro.
2020-03-10Reland "[DebugInfo] Enable the debug entry values feature by default"Djordje Todorovic1-0/+6
Differential Revision: https://reviews.llvm.org/D73534
2020-02-20Revert "Reland "[DebugInfo] Enable the debug entry values feature by default""Djordje Todorovic1-8/+0
This reverts commit rGfaff707db82d. A failure found on an ARM 2-stage buildbot. The investigation is needed.
2020-02-19Reland "[DebugInfo] Enable the debug entry values feature by default"Djordje Todorovic1-0/+8
Differential Revision: https://reviews.llvm.org/D73534
2020-02-18Revert "Reland "[DebugInfo] Enable the debug entry values feature by default""Djordje Todorovic1-8/+0
This reverts commit rGa82d3e8a6e67.
2020-02-18Reland "[DebugInfo] Enable the debug entry values feature by default"Djordje Todorovic1-0/+8
This patch enables the debug entry values feature. - Remove the (CC1) experimental -femit-debug-entry-values option - Enable it for x86, arm and aarch64 targets - Resolve the test failures - Leave the llc experimental option for targets that do not support the CallSiteInfo yet Differential Revision: https://reviews.llvm.org/D73534
2020-02-12Revert "[DebugInfo] Enable the debug entry values feature by default"Djordje Todorovic1-8/+0
This reverts commit rG9f6ff07f8a39. Found a test failure on clang-with-thin-lto-ubuntu buildbot.
2020-02-12[DebugInfo] Enable the debug entry values feature by defaultDjordje Todorovic1-0/+8
This patch enables the debug entry values feature. - Remove the (CC1) experimental -femit-debug-entry-values option - Enable it for x86, arm and aarch64 targets - Resolve the test failures - Leave the llc experimental option for targets that do not support the CallSiteInfo yet Differential Revision: https://reviews.llvm.org/D73534
2019-12-30Ignore "no-frame-pointer-elim" and "no-frame-pointer-elim-non-leaf" in favor ↵Fangrui Song1-13/+1
of "frame-pointer" D56351 (included in LLVM 8.0.0) introduced "frame-pointer". All tests which use "no-frame-pointer-elim" or "no-frame-pointer-elim-non-leaf" have been migrated to use "frame-pointer". Implement UpgradeFramePointerAttributes to upgrade the two obsoleted function attributes for bitcode. Their semantics are ignored. Differential Revision: https://reviews.llvm.org/D71863
2019-01-19Update the file headers across all of the LLVM projects in the monorepoChandler Carruth1-4/+3
to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
2019-01-14Replace "no-frame-pointer-*" function attributes with "frame-pointer"Francis Visoiu Mistrih1-6/+25
Part of the effort to refactoring frame pointer code generation. We used to use two function attributes "no-frame-pointer-elim" and "no-frame-pointer-elim-non-leaf" to represent three kinds of frame pointer usage: (all) frames use frame pointer, (non-leaf) frames use frame pointer, (none) frame use frame pointer. This CL makes the idea explicit by using only one enum function attribute "frame-pointer" Option "-frame-pointer=" replaces "-disable-fp-elim" for tools such as llc. "no-frame-pointer-elim" and "no-frame-pointer-elim-non-leaf" are still supported for easy migration to "frame-pointer". tests are mostly updated with // replace command line args ‘-disable-fp-elim=false’ with ‘-frame-pointer=none’ grep -iIrnl '\-disable-fp-elim=false' * | xargs sed -i '' -e "s/-disable-fp-elim=false/-frame-pointer=none/g" // replace command line args ‘-disable-fp-elim’ with ‘-frame-pointer=all’ grep -iIrnl '\-disable-fp-elim' * | xargs sed -i '' -e "s/-disable-fp-elim/-frame-pointer=all/g" Patch by Yuanfang Chen (tabloid.adroit)! Differential Revision: https://reviews.llvm.org/D56351 llvm-svn: 351049
2017-12-15MachineFunction: Return reference from getFunction(); NFCMatthias Braun1-1/+1
The Function can never be nullptr so we can return a reference. llvm-svn: 320884
2017-11-17Fix a bunch more layering of CodeGen headers that are in TargetDavid Blaikie1-2/+2
All these headers already depend on CodeGen headers so moving them into CodeGen fixes the layering (since CodeGen depends on Target, not the other way around). llvm-svn: 318490
2017-11-03Move TargetFrameLowering.h to CodeGen where it's implementedDavid Blaikie1-1/+1
This header already includes a CodeGen header and is implemented in lib/CodeGen, so move the header there to match. This fixes a link error with modular codegeneration builds - where a header and its implementation are circularly dependent and so need to be in the same library, not split between two like this. llvm-svn: 317379
2017-06-06Sort the remaining #include lines in include/... and lib/....Chandler Carruth1-2/+2
I did this a long time ago with a janky python script, but now clang-format has built-in support for this. I fed clang-format every line with a #include and let it re-sort things according to the precise LLVM rules for include ordering baked into clang-format these days. I've reverted a number of files where the results of sorting includes isn't healthy. Either places where we have legacy code relying on particular include ordering (where possible, I'll fix these separately) or where we have particular formatting around #include lines that I didn't want to disturb in this patch. This patch is *entirely* mechanical. If you get merge conflicts or anything, just ignore the changes in this patch and run clang-format over your #include lines in the files. Sorry for any noise here, but it is important to keep these things stable. I was seeing an increasing number of patches with irrelevant re-ordering of #include lines because clang-format was used. This patch at least isolates that churn, makes it easy to skip when resolving conflicts, and gets us to a clean baseline (again). llvm-svn: 304787
2017-03-17Remove LessPreciseFPMADOption from TargetOptions along with all of theEric Christopher1-8/+0
associated command line options and functions - it's currently unused in all of llvm and clang other than being set and reset. llvm-svn: 298023
2016-07-28MachineFunction: Return reference for getFrameInfo(); NFCMatthias Braun1-1/+1
getFrameInfo() never returns nullptr so we should use a reference instead of a pointer. llvm-svn: 277017
2015-07-02Use function attribute "trap-func-name" and remove TargetOptions::TrapFuncName.Akira Hatanaka1-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
2015-05-26Remove NoFramePointerElim and NoFramePointerElimOverride from TargetOptions andAkira Hatanaka1-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
2015-05-23Stop resetting NoFramePointerElim in TargetMachine::resetTargetOptions.Akira Hatanaka1-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
2015-05-23Simplify and rename function overrideFunctionAttributes. NFC.Akira Hatanaka1-0/+20
This is in preparation to making changes needed to stop resetting NoFramePointerElim in resetTargetOptions. llvm-svn: 238079
2015-04-19Remove CFIFuncName from TargetOptions as it is currently unused.Eric Christopher1-6/+0
llvm-svn: 235268
2015-04-19Remove the CFIEnforcing flag from TargetOptions as it is unused.Eric Christopher1-2/+1
llvm-svn: 235267
2015-01-14Migrate ABIName to MCTargetOptions so that it can be shared betweenEric Christopher1-7/+0
the TargetMachine level and the MC level. llvm-svn: 225891
2014-12-18Add a new string member to the TargetOptions struct for the nameEric Christopher1-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
2014-11-11Add Forward Control-Flow Integrity.Tom Roeder1-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
2014-01-07Re-sort all of the includes with ./utils/sort_includes.py so thatChandler Carruth1-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
2013-08-22Check only if we have this attribute. If it's not an attribute, then it's ↵Bill Wendling1-4/+2
assumed false. llvm-svn: 189063
2013-07-25Replace the "NoFramePointerElimNonLeaf" target option with a function attribute.Bill Wendling1-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
2013-06-19This is now a duplicate.Bill Wendling1-26/+0
llvm-svn: 184376
2013-06-19Make the comparison operators non-member functions.Bill Wendling1-2/+2
llvm-svn: 184373
2013-05-07Remove exception handling support from the old JIT.Rafael Espindola1-1/+0
llvm-svn: 181354
2013-04-05Use the target options specified on a function to reset the back-end.Bill Wendling1-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
2011-12-15Move parts of lib/Target that use CodeGen into lib/CodeGen.Nick Lewycky1-0/+52
llvm-svn: 146702