llvm-project/llvm/lib/CodeGen/GlobalISel
Kiran Chandramohan 965ed1e974 [AArch64] Fix issues with large arrays on stack
Summary:
This patch fixes a few issues when large arrays are allocated on the
stack. Currently, clang has inconsistent behaviour, for debug builds
there is an assertion failure when the array size on stack is around 2GB
but there is no assertion when the stack is around 8GB. For release
builds there is no assertion, the compilation succeeds but generates
incorrect code. The incorrect code generated is due to using
int/unsigned int instead of their 64-bit counterparts. This patch,
1) Removes the assertion in frame legality check.
2) Converts int/unsigned int in some places to the 64-bit variants. This
helps in generating correct code and removes the inconsistent behaviour.
3) Adds a test which runs without optimisations.

Reviewers: sdesmalen, efriedma, fhahn, aemerson

Reviewed By: efriedma

Subscribers: eli.friedman, fpetrogalli, kristof.beyls, hiraditya,
llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D70496
2019-12-10 11:44:41 +00:00
..
CMakeLists.txt [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
CSEInfo.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
CSEMIRBuilder.cpp [globalisel] Add G_SEXT_INREG 2019-08-09 21:11:20 +00:00
CallLowering.cpp [Alignment][NFC] TargetCallingConv::setByValAlign 2019-10-21 12:05:33 +00:00
Combiner.cpp [gicombiner] Add the run-time rule disable option 2019-10-17 00:37:04 +00:00
CombinerHelper.cpp [GlobalISel] CombinerHelper: Fix a bug in matchCombineCopy 2019-12-02 12:05:09 -08:00
GISelChangeObserver.cpp [AArch64][GlobalISel] Enable copy elision in the pre-legalizer combine and fix a crash. 2019-04-13 00:33:25 +00:00
GISelKnownBits.cpp [globalisel] Rename G_GEP to G_PTR_ADD 2019-11-05 10:31:17 -08:00
GlobalISel.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IRTranslator.cpp [AArch64] Fix issues with large arrays on stack 2019-12-10 11:44:41 +00:00
InstructionSelect.cpp [GlobalISel] Defer setting HasCalls on MachineFrameInfo to selection time. 2019-09-20 23:52:07 +00:00
InstructionSelector.cpp [globalisel] Rename G_GEP to G_PTR_ADD 2019-11-05 10:31:17 -08:00
LLVMBuild.txt Make GlobalISel depend on SelectionDAG after D63169 2019-06-22 01:30:17 +00:00
LegalityPredicates.cpp GlobalISel: Add alignment to LegalityQuery MMOs 2019-02-14 22:41:09 +00:00
LegalizeMutations.cpp GlobalISel: Try to make legalize rules more useful for vectors 2019-02-07 17:25:51 +00:00
Legalizer.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
LegalizerHelper.cpp [GlobalISel] Fix compiler crash lowering G_LOAD in AArch64. 2019-12-04 17:04:54 -08:00
LegalizerInfo.cpp [GlobalISel]: Allow targets to override how to widen constants during legalization 2019-12-03 10:41:10 -08:00
Localizer.cpp [GlobalISel] Localizer: Allow targets not to run the pass conditionally 2019-12-05 11:09:50 -08:00
MachineIRBuilder.cpp [globalisel] Rename G_GEP to G_PTR_ADD 2019-11-05 10:31:17 -08:00
RegBankSelect.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
RegisterBank.cpp Prune two MachineInstr.h includes, fix up deps 2019-10-19 00:22:07 +00:00
RegisterBankInfo.cpp Second attempt to add iterator_range::empty() 2019-10-07 18:14:24 +00:00
Utils.cpp [GISel] Simplifying return from else in function. NFC 2019-10-10 21:51:30 +00:00