diff options
author | Petr Pavlu <petr.pavlu@arm.com> | 2018-11-29 13:22:53 +0000 |
---|---|---|
committer | Petr Pavlu <petr.pavlu@arm.com> | 2018-11-29 13:22:53 +0000 |
commit | 6bb80512db29c02ea149f63512d05be0939aaae7 (patch) | |
tree | d60751159856f0c12f0cc6dbd4283f0f2e7abe15 /clang/lib/AST/ExternalASTMerger.cpp | |
parent | e6406d568c550dc27999d96d174f8fe354ab545a (diff) | |
download | bcm5719-llvm-6bb80512db29c02ea149f63512d05be0939aaae7.tar.gz bcm5719-llvm-6bb80512db29c02ea149f63512d05be0939aaae7.zip |
[GlobalISel] Fix insertion of stack-protector epilogue
* Tell the StackProtector pass to generate the epilogue instrumentation
when GlobalISel is enabled because GISel currently does not implement
the same deferred epilogue insertion as SelectionDAG.
* Update StackProtector::InsertStackProtectors() to find a stack guard
slot by searching for the llvm.stackprotector intrinsic when the
prologue was not created by StackProtector itself but the pass still
needs to generate the epilogue instrumentation. This fixes a problem
when the pass would abort because the stack guard AllocInst pointer
was null when generating the epilogue -- test
CodeGen/AArch64/GlobalISel/arm64-irtranslator-stackprotect.ll.
Differential Revision: https://reviews.llvm.org/D54518
llvm-svn: 347862
Diffstat (limited to 'clang/lib/AST/ExternalASTMerger.cpp')
0 files changed, 0 insertions, 0 deletions