1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 21:42:54 +02:00
llvm-mirror/include/llvm/Target
Evan Cheng ce610bd6b3 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

llvm-svn: 119548
2010-11-17 20:13:28 +00:00
..
Mangler.h Revert r107205 and r107207. 2010-06-29 22:34:52 +00:00
SubtargetFeature.h The getDefaultSubtargetFeatures method of SubtargetFeature did actually return a 2010-05-11 00:30:02 +00:00
Target.td Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, 2010-11-17 20:13:28 +00:00
TargetAsmBackend.h make isVirtualSection a virtual method on MCSection. Chris' suggestion. 2010-11-17 20:03:54 +00:00
TargetAsmLexer.h
TargetAsmParser.h implement rdar://8456378 and PR7557 - support for the fstsw, 2010-09-29 01:50:45 +00:00
TargetCallingConv.h Inside the calling convention logic LocVT is always a simple 2010-11-03 11:35:31 +00:00
TargetCallingConv.td Fix a couple of typos. 2010-08-27 21:38:11 +00:00
TargetData.h Fix linux/msvc build, move include. 2010-09-13 20:04:49 +00:00
TargetELFWriterInfo.h Jim Asked us to move DataLayout on ARM back to the most specialized classes. Do 2010-10-03 18:59:45 +00:00
TargetFrameInfo.h First step of huge frame-related refactoring: move emit{Prologue,Epilogue} out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place 2010-11-15 00:06:54 +00:00
TargetInstrDesc.h Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, 2010-11-17 20:13:28 +00:00
TargetInstrInfo.h Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, 2010-11-17 20:13:28 +00:00
TargetInstrItineraries.h Model Cortex-a9 load to SUB, RSB, ADD, ADC, SBC, RSC, CMN, MVN, or CMP 2010-09-29 22:42:35 +00:00
TargetIntrinsicInfo.h
TargetJITInfo.h
TargetLowering.h Prune includes. 2010-11-06 11:45:59 +00:00
TargetLoweringObjectFile.h the latest assembler that runs on powerpc 10.4 machines doesn't 2010-09-27 06:44:54 +00:00
TargetMachine.h Whitespace! 2010-10-16 08:25:21 +00:00
TargetOpcodes.h Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and 2010-07-16 22:20:36 +00:00
TargetOptions.h Grammar. 2010-07-29 18:11:28 +00:00
TargetRegisterInfo.h First step of huge frame-related refactoring: move emit{Prologue,Epilogue} out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place 2010-11-15 00:06:54 +00:00
TargetRegistry.h Add registry hook for assembly text output 2010-11-08 02:21:17 +00:00
TargetSchedule.td Comments about operand cycles and pipeline forwarding pathes. 2010-09-30 22:01:50 +00:00
TargetSelect.h Fix LLVM target initialization to deal with sociopathic outside projects 2010-08-30 18:34:48 +00:00
TargetSelectionDAG.td Fix preload instruction isel. Only v7 supports pli, and only v7 with mp extension supports pldw. Add subtarget attribute to denote mp extension support and legalize illegal ones to nothing. 2010-11-03 06:34:55 +00:00
TargetSelectionDAGInfo.h reimplement memcpy/memmove/memset lowering to use MachinePointerInfo 2010-09-21 05:40:29 +00:00
TargetSubtarget.h