llvm-6502/include/llvm
Evan Cheng c4af4638df Remove ARM isel hacks that fold large immediates into a pair of add, sub, and,
and xor. The 32-bit move immediates can be hoisted out of loops by machine
LICM but the isel hacks were preventing them.

Instead, let peephole optimization pass recognize registers that are defined by
immediates and the ARM target hook will fold the immediates in.

Other changes include 1) do not fold and / xor into cmp to isel TST / TEQ
instructions if there are multiple uses. This happens when the 'and' is live
out, machine sink would have sinked the computation and that ends up pessimizing
code. The peephole pass would recognize situations where the 'and' can be
toggled to define CPSR and eliminate the comparison anyway.

2) Move peephole pass to after machine LICM, sink, and CSE to avoid blocking
important optimizations.

rdar://8663787, rdar://8241368


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119548 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-17 20:13:28 +00:00
..
ADT Fix warnings about missing parents between || and &&. 2010-11-17 02:40:30 +00:00
Analysis Move some those Xor simplifications which don't require creating new 2010-11-17 18:52:15 +00:00
Assembly lets get crazy and name the header file the exact class name, 2010-09-02 23:09:42 +00:00
Bitcode Remove tabs. 2010-10-06 07:19:18 +00:00
CodeGen refactor the interface to EmitInlineAsm a bit, no functionality change. 2010-11-17 07:53:40 +00:00
CompilerDriver llvmc: Allow multiple output languages. 2010-09-21 14:59:42 +00:00
Config Endian: Get rid of LLVM_IS_HOST_BIG_ENDIAN. 2010-10-22 18:45:12 +00:00
ExecutionEngine MCJIT: Stub out MCJIT implementation, still doesn't do anything useful. 2010-11-17 16:06:43 +00:00
MC make isVirtualSection a virtual method on MCSection. Chris' suggestion. 2010-11-17 20:03:54 +00:00
Object Object: Get rid of sys::Path, Triple, and cleanup namespace. 2010-11-16 01:06:51 +00:00
Support Move some those Xor simplifications which don't require creating new 2010-11-17 18:52:15 +00:00
System Fix typo: Exectuable -> Executable 2010-11-17 00:43:43 +00:00
Target Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, 2010-11-17 20:13:28 +00:00
Transforms Let the -inline-threshold command line argument take precedence over the 2010-11-02 23:40:26 +00:00
AbstractTypeUser.h
Argument.h
Attributes.h Add a new 'hotpatch' attribute. This attribute will insert a two-byte no-op 2010-10-25 15:37:09 +00:00
AutoUpgrade.h Auto-upgrade the magic ".llvm.eh.catch.all.value" global to 2010-09-10 18:51:56 +00:00
BasicBlock.h
CallGraphSCCPass.h
CallingConv.h Add ret instruction to PTX backend 2010-09-25 07:46:17 +00:00
CMakeLists.txt
Constant.h Remove apparently unnecessary forward declaration. 2010-09-14 01:18:15 +00:00
Constants.h Prune includes. 2010-09-14 20:49:00 +00:00
DerivedTypes.h fix a bug I introduced back in the hayday of version #2. 2010-09-20 03:58:32 +00:00
Function.h Switch attribute macros to use 'LLVM_' as a prefix. We retain the old names 2010-10-23 08:10:43 +00:00
GlobalAlias.h
GlobalValue.h
GlobalVariable.h GlobalOpt: EvaluateFunction() must not evaluate stores to weak_odr globals. 2010-10-19 16:47:23 +00:00
GVMaterializer.h
InitializePasses.h Split pseudo-instruction expansion into a separate pass, to make it 2010-11-16 21:02:37 +00:00
InlineAsm.h Mult-alt constraint incremental development step 3. 2010-10-29 23:37:38 +00:00
InstrTypes.h
Instruction.def
Instruction.h
Instructions.h fix PR8613 - Copy constructor of SwitchInst does not call SwitchInst::init 2010-11-17 05:41:46 +00:00
IntrinsicInst.h
Intrinsics.h
Intrinsics.td Add a pre-dispatch SjLj EH hook on the unwind edge for targets to do any 2010-10-19 23:27:08 +00:00
IntrinsicsAlpha.td
IntrinsicsARM.td Replace NEON vabdl, vaba, and vabal intrinsics with combinations of the 2010-09-03 01:35:08 +00:00
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td
IntrinsicsX86.td The pshufw instruction came about in MMX2 when SSE was introduced. Don't place 2010-10-04 20:24:01 +00:00
IntrinsicsXCore.td
LinkAllPasses.h Reference RegionPass to stop it being eliminated. 2010-10-25 15:36:50 +00:00
LinkAllVMCore.h
Linker.h
LLVMContext.h now that AsmPrinter::EmitInlineAsm is factored right, we can eliminate the 2010-11-17 08:13:01 +00:00
Metadata.h After Dan's recent commit this is no longer true. 2010-09-14 20:32:58 +00:00
Module.h
OperandTraits.h
Operator.h Avoid warnings about implicit conversions to `bool' in MSVC. This time 2010-09-25 20:27:36 +00:00
Pass.h Add RegionPass support. 2010-10-20 01:54:44 +00:00
PassAnalysisSupport.h
PassManager.h
PassManagers.h Add RegionPass support. 2010-10-20 01:54:44 +00:00
PassRegistry.h Attempt to fix valgrind complaining about (benign) leaks in pass registration by having PassRegistry 2010-10-20 22:22:30 +00:00
PassSupport.h Attempt to fix valgrind complaining about (benign) leaks in pass registration by having PassRegistry 2010-10-20 22:22:30 +00:00
SymbolTableListTraits.h
Type.h Add x86MMX a few more places. 2010-09-15 00:52:23 +00:00
TypeSymbolTable.h Add missing include. 2010-09-14 21:25:38 +00:00
Use.h
User.h
Value.h Factor out Instruction::isSafeToSpeculativelyExecute's code for 2010-11-11 21:23:25 +00:00
ValueSymbolTable.h