llvm-6502/lib/Target/AArch64
Jiangning Liu b20b9bf9fd [AArch64] Add pass to enable additional comparison optimizations by CSE.
Patched by Sergey Dmitrouk.

This pass tries to make consecutive compares of values use same operands to
allow CSE pass to remove duplicated instructions. For this it analyzes
branches and adjusts comparisons with immediate values by converting:

GE -> GT
GT -> GE
LT -> LE
LE -> LT

and adjusting immediate values appropriately. It basically corrects two
immediate values towards each other to make them equal.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217220 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-05 02:55:24 +00:00
..
AsmParser Make isValidMCLOHType take unsigned instead of enum to avoid loading invalid enum values 2014-08-29 22:34:28 +00:00
Disassembler Fix left shifts of negative integers in AArch64 InstPrinter/Disassembler 2014-09-02 16:19:41 +00:00
InstPrinter Add override to overriden virtual methods, remove virtual keywords. 2014-09-03 11:41:21 +00:00
MCTargetDesc Remove HasLEB128. 2014-08-15 14:01:07 +00:00
TargetInfo AArch64: stop trying to take control of all UnknownArch triples. 2014-08-08 08:27:44 +00:00
Utils Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AArch64.h [AArch64] Add pass to enable additional comparison optimizations by CSE. 2014-09-05 02:55:24 +00:00
AArch64.td
AArch64A57FPLoadBalancing.cpp [AArch64] FPLoadBalancing: move ownership of the chain to its current accumulator register 2014-08-29 09:54:11 +00:00
AArch64AddressTypePromotion.cpp Fix typos in comments 2014-08-15 22:17:28 +00:00
AArch64AdvSIMDScalarPass.cpp
AArch64AsmPrinter.cpp Delete unused argument in AArch64MCInstLower constructor: it doesn't 2014-08-19 21:51:08 +00:00
AArch64BranchRelaxation.cpp Testing commit access. 2014-08-14 16:20:50 +00:00
AArch64CallingConvention.td Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
AArch64CleanupLocalDynamicTLSPass.cpp
AArch64CollectLOH.cpp AArch64: use std::fill instead of memset 2014-08-26 03:33:26 +00:00
AArch64ConditionalCompares.cpp Change MCSchedModel to be a struct of statically initialized data. 2014-09-02 17:43:54 +00:00
AArch64ConditionOptimizer.cpp [AArch64] Add pass to enable additional comparison optimizations by CSE. 2014-09-05 02:55:24 +00:00
AArch64DeadRegisterDefinitionsPass.cpp Remove 'virtual' keyword from methods markedwith 'override' keyword. 2014-08-30 16:48:34 +00:00
AArch64ExpandPseudoInsts.cpp
AArch64FastISel.cpp [FastISel][AArch64] Cleanup and simplify 'fastSelectInstruction'. NFC. 2014-09-04 01:29:21 +00:00
AArch64FrameLowering.cpp Fix typos: 2014-08-11 18:04:46 +00:00
AArch64FrameLowering.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AArch64InstrAtomics.td Make use of isAtLeastRelease/Acquire in the ARM/AArch64 backends 2014-08-18 16:48:58 +00:00
AArch64InstrFormats.td Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
AArch64InstrInfo.cpp Remove unnecessary getTarget call now that the subtarget is cached 2014-09-03 20:36:26 +00:00
AArch64InstrInfo.h Add override to overriden virtual methods, remove virtual keywords. 2014-09-03 11:41:21 +00:00
AArch64InstrInfo.td AArch64: fix vector-immediate BIC/ORR on big-endian devices. 2014-09-04 15:05:24 +00:00
AArch64ISelDAGToDAG.cpp Merge Extend and Shift into a UBFX 2014-09-02 09:33:56 +00:00
AArch64ISelLowering.cpp AArch64: fix vector-immediate BIC/ORR on big-endian devices. 2014-09-04 15:05:24 +00:00
AArch64ISelLowering.h AArch64: fix big-endian immediate materialisation 2014-09-04 09:46:14 +00:00
AArch64LoadStoreOptimizer.cpp Add missing closing namespace comment. 2014-08-11 22:42:31 +00:00
AArch64MachineCombinerPattern.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AArch64MachineFunctionInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AArch64MCInstLower.cpp Delete unused argument in AArch64MCInstLower constructor: it doesn't 2014-08-19 21:51:08 +00:00
AArch64MCInstLower.h Delete unused argument in AArch64MCInstLower constructor: it doesn't 2014-08-19 21:51:08 +00:00
AArch64PerfectShuffle.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AArch64PromoteConstant.cpp
AArch64RegisterInfo.cpp
AArch64RegisterInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AArch64RegisterInfo.td Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
AArch64SchedA53.td
AArch64SchedA57.td
AArch64SchedA57WriteRes.td
AArch64SchedCyclone.td
AArch64Schedule.td
AArch64SelectionDAGInfo.cpp
AArch64SelectionDAGInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AArch64StorePairSuppress.cpp Change MCSchedModel to be a struct of statically initialized data. 2014-09-02 17:43:54 +00:00
AArch64Subtarget.cpp
AArch64Subtarget.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AArch64TargetMachine.cpp [AArch64] Add pass to enable additional comparison optimizations by CSE. 2014-09-05 02:55:24 +00:00
AArch64TargetMachine.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AArch64TargetObjectFile.cpp
AArch64TargetObjectFile.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
AArch64TargetTransformInfo.cpp Allow vectorization of division by uniform power of 2. 2014-08-25 04:56:54 +00:00
CMakeLists.txt [AArch64] Add pass to enable additional comparison optimizations by CSE. 2014-09-05 02:55:24 +00:00
LLVMBuild.txt
Makefile