llvm/lib
Juergen Ributzka 50fa2ff5d2 [AArch64] Don't optimize all compare instructions.
"optimizeCompareInstr" converts compares (cmp/cmn) into plain sub/add
instructions when the flags are not used anymore. This conversion is valid for
most instructions, but not all. Some instructions that don't set the flags
(e.g. sub with immediate) can set the SP, whereas the flag setting version uses
the same encoding for the "zero" register.

Update the code to also check for the return register before performing the
optimization to make sure that a cmp doesn't suddenly turn into a sub that sets
the stack pointer.

I don't have a test case for this, because it isn't easy to trigger.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222255 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-18 21:02:40 +00:00
..
Analysis ScalarEvolution: Construct SCEVDivision's Derived type instead of itself 2014-11-17 11:27:45 +00:00
AsmParser X86: Implement the vectorcall calling convention 2014-10-28 01:29:26 +00:00
Bitcode Pass a reference to ValueEnumerator. 2014-11-17 20:06:27 +00:00
CodeGen Fix an incorrect chain operand when expanding INSERT_VECTOR operations through the stack. 2014-11-18 20:50:19 +00:00
DebugInfo [dwarfdump] Handle relocations in Dwarf accelerator tables 2014-11-14 19:30:08 +00:00
ExecutionEngine Fix covered switch warning 2014-11-18 01:26:46 +00:00
IR IR: Sink MDNode::Hash down to GenericMDNode::Hash 2014-11-18 02:20:29 +00:00
IRReader Remove unused variable. NFC. 2014-11-06 23:16:57 +00:00
LineEditor
Linker Factor common code it Linker::init. 2014-11-17 20:51:01 +00:00
LTO libLTO: Assert if LTOCodeGenerator and LTOModule are from different contexts 2014-11-11 23:13:10 +00:00
MC COFF: Add support for Dwarf accelerator tables. 2014-11-14 20:33:40 +00:00
Object Support ELF files of unknown type. 2014-11-18 01:14:25 +00:00
Option Add an overload of getLastArgNoClaim taking two OptSpecifiers. 2014-09-12 19:42:53 +00:00
ProfileData llvm-cov: Sink some reporting logic into CoverageMapping 2014-11-14 01:50:32 +00:00
Support Support ELF files of unknown type. 2014-11-18 01:14:25 +00:00
TableGen Eliminate some deep std::vector copies. NFC. 2014-10-03 18:33:16 +00:00
Target [AArch64] Don't optimize all compare instructions. 2014-11-18 21:02:40 +00:00
Transforms [Reassociate] Rename local variable to not use same name as a member 2014-11-18 20:21:54 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile