llvm-6502/lib
Bruno Cardoso Lopes 08ecb711ac Fix PR10884.
This PR basically reports a problem where a crash in generated code
happened due to %rbp being clobbered:

  pushq %rbp
  movq  %rsp, %rbp
  ....
  vmovmskps %ymm12, %ebp
  ....
  movq  %rbp, %rsp
  popq  %rbp
  ret

Since Eric's r123367 commit, the default stack alignment for x86 32-bit
has changed to be 16-bytes. Since then, the MaxStackAlignmentHeuristicPass
hasn't been really used, but with AVX it becomes useful again, since per
ABI compliance we don't always align the stack to 256-bit, but only when
there are 256-bit incoming arguments.

ReserveFP was only used by this pass, but there's no RA target hook that
uses getReserveFP() to check for the presence of FP (since nothing was
triggering the pass to run, the uses of getReserveFP() were removed
through time without being noticed). Change this pass to use
setForceFramePointer, which is properly called by MachineFunction
hasFP method.

The testcase is very big and dependent on RA, not sure if it's worth
adding to test/CodeGen/X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139939 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-16 20:58:28 +00:00
..
Analysis Add support to emit debug info for C++0x nullptr type. 2011-09-14 23:13:28 +00:00
Archive Rewrite the CMake build to use explicit dependencies between libraries, 2011-07-29 00:14:25 +00:00
AsmParser Auto upgrade the old EH scheme to use the new one. This is on a trial basis. If 2011-08-27 06:11:03 +00:00
Bitcode Don't forget to add the landingpad and resume instructions to the InstructionList. 2011-09-01 00:50:20 +00:00
CodeGen Namespacify. 2011-09-16 00:35:06 +00:00
CompilerDriver Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
DebugInfo Namespacify. 2011-09-16 00:35:06 +00:00
ExecutionEngine Fix the asserts in lib/Target/X86/X86ELFWriterInfo.cpp and 2011-09-10 01:42:07 +00:00
Linker switch to the new struct api. 2011-08-12 18:07:26 +00:00
MC Don't attach annotations to MCInst's. Instead, have the disassembler return, and the printer accept, an annotation string which can be passed through if the client cares about annotations. 2011-09-15 23:38:46 +00:00
Object Object: make the following changes into SymbolRef 2011-09-14 01:22:52 +00:00
Support Fix a minor bug in fs::create_directories. Patch by Albert Wong. 2011-09-16 18:36:31 +00:00
Target Fix PR10884. 2011-09-16 20:58:28 +00:00
Transforms Reapply r139759. Disable IV rewriting by default. See PR10916. 2011-09-15 20:58:37 +00:00
VMCore Add a check to make sure schedulePass() has not deleted stale RequiredPass. 2011-09-13 21:13:29 +00:00
CMakeLists.txt Sketch out a DWARF parser. 2011-09-13 19:42:23 +00:00
Makefile Sketch out a DWARF parser. 2011-09-13 19:42:23 +00:00