llvm-6502/test/Transforms
Chris Lattner daa02ab70c Make simplifycfg reprocess newly formed "br (cond1 | cond2)" conditions
when simplifying, allowing them to be eagerly turned into switches.  This
is the last step required to get "Example 7" from this blog post:
http://blog.regehr.org/archives/320

On X86, we now generate this machine code, which (to my eye) seems better
than the ICC generated code:

_crud:                                  ## @crud
## BB#0:                                ## %entry
	cmpb	$33, %dil
	jb	LBB0_4
## BB#1:                                ## %switch.early.test
	addb	$-34, %dil
	cmpb	$58, %dil
	ja	LBB0_3
## BB#2:                                ## %switch.early.test
	movzbl	%dil, %eax
	movabsq	$288230376537592865, %rcx ## imm = 0x400000017001421
	btq	%rax, %rcx
	jb	LBB0_4
LBB0_3:                                 ## %lor.rhs
	xorl	%eax, %eax
	ret
LBB0_4:                                 ## %lor.end
	movl	$1, %eax
	ret



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121690 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-13 07:00:06 +00:00
..
ADCE
ArgumentPromotion Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00
BlockPlacement
BranchFolding
CodeExtractor
CodeGenPrepare Add a test for CodeGenPrepare's ability to look through PHI nodes when performing 2010-11-19 22:34:53 +00:00
ConstantMerge fix PR8144, a bug where constant merge would merge globals marked 2010-09-15 00:30:11 +00:00
ConstProp Teach ConstantFoldInstruction() how to fold insertvalue and extractvalue. 2010-11-29 20:36:52 +00:00
CorrelatedValuePropagation Update testcase since we're no longer doing the constant forwarding inline with correlated value propagation. 2010-10-29 21:18:23 +00:00
DeadArgElim
DeadStoreElimination Fix PR8728, a miscompilation I recently introduced. When optimizing 2010-12-06 01:48:06 +00:00
FunctionAttrs Make ModRefBehavior a lattice. Use this to clean up AliasAnalysis 2010-11-10 01:02:18 +00:00
GlobalDCE
GlobalOpt reapply r121100 with a tweak to constant fold ConstExprs with TargetData 2010-12-07 04:33:29 +00:00
GVN Completely rework the datastructure GVN uses to represent the value number to leader mapping. Previously, 2010-11-18 18:32:40 +00:00
IndVarSimplify Remove LoopIndexSplit pass. It is neither maintained nor used by anyone. 2010-10-07 23:29:37 +00:00
Inline Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00
InstCombine Generalize the and-icmp-select instcombine further by allowing selects of the form 2010-12-11 10:49:22 +00:00
Internalize
IPConstantProp
JumpThreading Implement jump threading of 'indirectbr' by keeping track of whether we're looking for ConstantInt*s or BlockAddress*s. 2010-12-06 23:36:56 +00:00
LCSSA
LICM Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00
LoopDeletion
LoopRotate
LoopSimplify
LoopStrengthReduce
LoopUnroll
LoopUnswitch Factor code for testing whether replacing one value with another 2010-11-18 19:59:41 +00:00
LowerAtomic
LowerInvoke
LowerSetJmp
LowerSwitch
Mem2Reg
MemCpyOpt enhance memcpyopt to zap memcpy's that have the same src/dst. 2010-12-09 07:45:45 +00:00
MergeFunc
PartialSpecialize Now using a variant of the existing inlining heuristics to decide whether to create a given specialization of a function in PartialSpecialization. If the total performance bonus across all callsites passing the same constant exceeds the specialization cost, we create the specialization. 2010-10-09 22:06:36 +00:00
PruneEH
Reassociate
ScalarRepl Treat a call of function pointer like a load of the pointer when considering 2010-11-24 22:04:20 +00:00
SCCP
SimplifyCFG Make simplifycfg reprocess newly formed "br (cond1 | cond2)" conditions 2010-12-13 07:00:06 +00:00
SimplifyLibCalls Add a puts optimization that converts puts() to putchar('\n'). 2010-11-30 06:19:18 +00:00
Sink Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00
SRETPromotion
StripSymbols
TailCallElim
TailDup