llvm-6502/lib
Saleem Abdulrasool 6c2be4ff95 ARM: try harder to detect non-IT eligible instructions
For many Thumb-1 register register instructions, setting the CPSR is not
permitted inside an IT block.  We would not correctly flag those instructions.
The previous change to identify this scenario was insufficient as it did not
actually catch all the instances.  The current list is formed by manual
inspection of the ARMv6M ARM.

The change to the Thumb2 IT block test is due to the fact that the new more
stringent checking of the MIs results in the If Conversion pass being prevented
from executing (since not all the instructions in the BB are predicable).  This
results in code gen changes.

Thanks to Tim Northover for pointing out that the previous patch was
insufficient and hinting that the use of the v6M ARM would be much easier to use
than the v7 or v8!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215382 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-11 20:13:25 +00:00
..
Analysis In LVI(Lazy Value Info), originally value on a BB can only be caculated once, 2014-08-11 05:02:04 +00:00
AsmParser Remove dead code in condition 2014-08-05 18:22:58 +00:00
Bitcode BitcodeReader: Fix non-determinism in use-list order 2014-08-05 17:49:48 +00:00
CodeGen PeepholeOptimizer: make parameter ref to SmallPtrSetImpl 2014-08-11 13:52:46 +00:00
DebugInfo DWOHolder takes ownership of the argument constructor, use std::unique_ptr. 2014-07-31 20:26:42 +00:00
ExecutionEngine [MCJIT] Simplify immediate decoding code in the RuntimeDyldMachO hierarchy. 2014-08-08 23:12:22 +00:00
IR Fix typos: 2014-08-11 18:04:46 +00:00
IRReader
LineEditor
Linker Fix use of uninitialized variable. 2014-08-11 17:07:34 +00:00
LTO Don't internalize all but main by default. 2014-08-05 20:10:38 +00:00
MC MC: Diagnose an unexpected token in COFF .section instead of asserting 2014-08-11 18:34:43 +00:00
Object AArch64: add support for dynamic-loader relocations 2014-08-11 10:10:27 +00:00
Option
ProfileData Coverage: add HasCodeBefore flag to a mapping region. 2014-08-04 18:00:51 +00:00
Support ADT: remove MinGW32 and Cygwin OSType enum 2014-08-09 23:12:20 +00:00
TableGen [tablegen] - Eliminate memory leaks in TGParser.cpp 2014-08-08 00:29:54 +00:00
Target ARM: try harder to detect non-IT eligible instructions 2014-08-11 20:13:25 +00:00
Transforms [LoopVectorizer] Enable support for floating-point subtraction reductions 2014-08-08 12:41:08 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile