llvm-project/llvm/lib
Nemanja Ivanovic ba1202a1e4 [PowerPC] Restore stack ptr from base ptr when available
On subtargets that have a red zone, we will copy the stack pointer to the base
pointer in the prologue prior to updating the stack pointer. There are no other
updates to the base pointer after that. This suggests that we should be able to
restore the stack pointer from the base pointer rather than loading it from the
back chain or adding the frame size back to either the stack pointer or the
frame pointer.
This came about because functions that call setjmp need to restore the SP from
the FP because the back chain might have been clobbered
(see https://reviews.llvm.org/D92906). However, if the stack is realigned, the
restored SP might be incorrect (which is what caused the failures in the two
ASan test cases).

This patch was tested quite extensivelly both with sanitizer runtimes and
general code.

Differential revision: https://reviews.llvm.org/D93327
2020-12-22 05:44:03 -06:00
..
Analysis Fold comparison of __builtin_object_size expression with -1 for non-const size 2020-12-22 10:56:31 +01:00
AsmParser [DebugInfo] Support Fortran 'use <external module>' statement. 2020-12-18 13:10:57 -05:00
BinaryFormat [XCOFF][AIX] Emit EH information in traceback table 2020-12-16 09:34:59 -05:00
Bitcode [DebugInfo] Support Fortran 'use <external module>' statement. 2020-12-18 13:10:57 -05:00
Bitstream llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
CodeGen [MachineLICM] Add llvm debug messages to SinkIntoLoop. NFC. 2020-12-22 09:19:43 +00:00
DWARFLinker [dsymutil][DWARFLinker][NFC] Make interface of AddressMap more general. 2020-12-10 14:57:08 +03:00
DebugInfo [llvm-symbolizer][Windows] Add start line when searching in line table sections. 2020-12-17 07:57:36 -08:00
Demangle llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
ExecutionEngine [MCA, ExecutionEngine, Object] Use llvm::is_contained (NFC) 2020-12-18 09:09:04 -08:00
Extensions llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
FileCheck [FileCheck] Add a literal check directive modifier 2020-12-18 17:26:15 -08:00
Frontend [OpenMPIRBuilder] Various changes required for tileLoops. 2020-12-11 11:37:45 -06:00
FuzzMutate llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Fuzzer
IR Make NPM OptBisectInstrumentation use global singleton OptBisect 2020-12-20 13:47:56 -08:00
IRReader static const char *const foo => const char foo[] 2020-12-01 10:33:18 -08:00
InterfaceStub [lib/Object, tools] - Make ELFObjectFile::getELFFile return reference. 2020-12-04 16:02:29 +03:00
LTO [NFC] Reduce include files dependency and AA header cleanup (part 2). 2020-12-17 14:04:48 +03:00
LineEditor llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Linker [ThinLTO] Import symver directives for imported symbols (PR48214) 2020-12-02 14:56:43 +01:00
MC [MC] Split MCContext::createTempSymbol, default AlwaysAddSuffix to true, and add comments 2020-12-21 14:04:13 -08:00
MCA [llvm-mca] Fix processing thumb instruction set 2020-11-24 18:27:59 +03:00
Object [MCA, ExecutionEngine, Object] Use llvm::is_contained (NFC) 2020-12-18 09:09:04 -08:00
ObjectYAML [obj2yaml][yaml2obj] - Add AArch64 STO_AARCH64_VARIANT_PCS support 2020-12-17 11:09:53 -03:00
Option Remove memory allocation with string 2020-12-05 15:14:44 -08:00
Passes [NewPM] Add TargetMachine method to add alias analyses 2020-12-21 13:46:07 -08:00
ProfileData [NFC][SampleFDO] Preparation to support multiple sections with the same type 2020-12-16 22:28:45 -08:00
Remarks llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Support [AArch64] Add support for the Branch Record Buffer extension 2020-12-18 11:11:06 +00:00
TableGen Revert "[TableGen] Add the !substr() bang operator" 2020-12-21 10:46:25 -05:00
Target [PowerPC] Restore stack ptr from base ptr when available 2020-12-22 05:44:03 -06:00
Testing [llvm][NFC] Remove unnecessary vector creation in Annotations 2020-11-14 15:55:09 +00:00
TextAPI llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
ToolDrivers llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Transforms [VPlan] Make VPInstruction a VPDef 2020-12-22 09:53:47 +00:00
WindowsManifest llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
XRay [lib/Object, tools] - Make ELFObjectFile::getELFFile return reference. 2020-12-04 16:02:29 +03:00
CMakeLists.txt llvmbuildectomy - support disabled native target 2020-11-13 15:50:13 +01:00