llvm-6502/utils
JF Bastien 9994b911f4 Targets: commonize some stack realignment code
This patch does the following:
* Fix FIXME on `needsStackRealignment`: it is now shared between multiple targets, implemented in `TargetRegisterInfo`, and isn't `virtual` anymore. This will break out-of-tree targets, silently if they used `virtual` and with a build error if they used `override`.
* Factor out `canRealignStack` as a `virtual` function on `TargetRegisterInfo`, by default only looks for the `no-realign-stack` function attribute.

Multiple targets duplicated the same `needsStackRealignment` code:
 - Aarch64.
 - ARM.
 - Mips almost: had extra `DEBUG` diagnostic, which the default implementation now has.
 - PowerPC.
 - WebAssembly.
 - x86 almost: has an extra `-force-align-stack` option, which the default implementation now has.

The default implementation of `needsStackRealignment` used to just return `false`. My current patch changes the behavior by simply using the above shared behavior. This affects:
 - AMDGPU
 - BPF
 - CppBackend
 - MSP430
 - NVPTX
 - Sparc
 - SystemZ
 - XCore
 - Out-of-tree targets
This is a breaking change! `make check` passes.

The only implementation of the `virtual` function (besides the slight different in x86) was Hexagon (which did `MF.getFrameInfo()->getMaxAlignment() > 8`), and potentially some out-of-tree targets. Hexagon now uses the default implementation.

`needsStackRealignment` was being overwritten in `<Target>GenRegisterInfo.inc`, to return `false` as the default also did. That was odd and is now gone.

Reviewers: sunfish

Subscribers: aemerson, llvm-commits, jfb

Differential Revision: http://reviews.llvm.org/D11160

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242727 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-20 22:51:32 +00:00
..
bugpoint
buildit ARM64: initial backend import 2014-03-29 10:18:08 +00:00
count
crosstool
emacs [emacs] Get llvm-mode to font-lock "personality" 2015-02-09 00:30:03 +00:00
FileCheck Replace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial types 2015-05-29 19:43:39 +00:00
fpcmp
git
git-svn Improve check on git-svnrevert, better error message 2015-05-16 10:23:48 +00:00
jedit
kate Remove the linker_private and linker_private_weak linkages. 2014-03-13 23:18:37 +00:00
KillTheDoctor More missing includes only visible to MSVC. 2015-03-23 18:23:08 +00:00
lint
lit [lit] Implement 'env' in the internal shell 2015-07-20 19:42:08 +00:00
llvm-build Teach llvm-build to avoid touching LibraryDependencies.inc unless the contents 2014-11-19 03:34:20 +00:00
llvm-lit Revert r229224: Make the 'llvm-lit' utility defend against a system where Python3 2015-02-14 07:11:25 +00:00
Misc
not Add a small "usage:" comment at the top of not.cpp 2014-11-26 22:53:46 +00:00
PerfectShuffle [C++11] Use 'nullptr'. 2014-06-08 22:29:17 +00:00
release Avoid early pipefail exits due to grep failures in stage comparisons. 2015-07-20 22:24:40 +00:00
TableGen Targets: commonize some stack realignment code 2015-07-20 22:51:32 +00:00
Target/ARM
testgen
textmate
unittest Make UnitTestMain/TestMain.cpp free from llvm/Config/config.h. 2015-07-06 23:51:40 +00:00
valgrind valgrind/x86_64-pc-linux-gnu.supp: Suppress also /bin/bash. 2014-09-24 04:38:20 +00:00
vim [vim] Update the syntax to mark REQUIRES lines and not talk about 2015-07-15 01:48:40 +00:00
yaml-bench YAML: Implement block scalar parsing. 2015-05-13 23:10:51 +00:00
bisect Add a small utility called bisect that enables commandline bisecting on a counter. 2014-08-02 01:39:08 +00:00
check-each-file
clang-parse-diagnostics-file
codegen-diff
countloc.sh
create_ladder_graph.py Add ladder graph utility 2015-04-14 18:14:38 +00:00
DSAclean.py
DSAextract.py
findmisopt Delete -std-compile-opts. 2014-10-16 20:00:02 +00:00
findoptdiff
findsym.pl
GenLibDeps.pl
GetRepositoryPath
GetSourceVersion
getsrcs.sh
lldbDataFormatters.py utils: Teach lldbDataFormatters about llvm::Optional 2015-02-20 02:55:22 +00:00
llvm-compilers-check Remove bogus configure check 2014-06-19 19:31:11 +00:00
llvm-native-gxx
llvm.grm Remove the linker_private and linker_private_weak linkages. 2014-03-13 23:18:37 +00:00
llvm.natvis Use correct memeber when displaying StringMap's size. 2014-07-09 05:34:24 +00:00
LLVMBuild.txt
llvmdo
llvmgrep
Makefile Fix r236754: Add the missing yaml-bench dir to the makefile for utils. 2015-05-07 18:48:48 +00:00
makellvm
shuffle_fuzz.py [shuffles] Tweak my shufflevector fuzz test generation script to produce 2015-02-18 01:36:45 +00:00
sort_includes.py Add polly support to sort_includes.py 2015-05-09 09:08:56 +00:00
test_debuginfo.pl test_debuginfo.pl: Make failures easier to debug by printing the debugger 2014-02-20 19:55:44 +00:00
update_llc_test_checks.py [x86] Teach my test updating script about another quirk of the printed 2015-02-15 00:08:01 +00:00
UpdateCMakeLists.pl
wciia.py Fix known typos 2014-01-24 17:20:08 +00:00