- Oct 30, 2007
-
-
Evan Cheng authored
It's not safe to tell SplitCriticalEdge to merge identical edges. It may delete the phi instruction that's being processed. llvm-svn: 43524
-
- Oct 29, 2007
-
-
Evan Cheng authored
- Allow icmp rewrite using an iv / stride of a smaller integer type. llvm-svn: 43480
-
Dan Gohman authored
lowering load and store instructions. llvm-svn: 43468
-
Dan Gohman authored
llvm-svn: 43467
-
Dan Gohman authored
of just printing to cerr. llvm-svn: 43466
-
Dan Gohman authored
llvm-svn: 43463
-
Dan Gohman authored
llvm-svn: 43462
-
Dan Gohman authored
llvm-svn: 43461
-
Dan Gohman authored
llvm-svn: 43460
-
Chris Lattner authored
can have uses too. Wouldn't it be nice if invoke didn't exist? :) llvm-svn: 43426
-
- Oct 27, 2007
-
-
Evan Cheng authored
- ChangeCompareStride only reuse stride that is larger than current stride. It will let the general reuse mechanism to try to reuse a smaller stride. - Watch out for multiplication overflow in ChangeCompareStride. - Replace std::set with SmallPtrSet. llvm-svn: 43408
-
- Oct 26, 2007
-
-
Evan Cheng authored
llvm-svn: 43384
-
Gordon Henriksen authored
improved wording in source files. llvm-svn: 43377
-
Evan Cheng authored
Loosen up iv reuse to allow reuse of the same stride but a larger type when truncating from the larger type to smaller type is free. e.g. Turns this loop: LBB1_1: # entry.bb_crit_edge xorl %ecx, %ecx xorw %dx, %dx movw %dx, %si LBB1_2: # bb movl L_X$non_lazy_ptr, %edi movw %si, (%edi) movl L_Y$non_lazy_ptr, %edi movw %dx, (%edi) addw $4, %dx incw %si incl %ecx cmpl %eax, %ecx jne LBB1_2 # bb into LBB1_1: # entry.bb_crit_edge xorl %ecx, %ecx xorw %dx, %dx LBB1_2: # bb movl L_X$non_lazy_ptr, %esi movw %cx, (%esi) movl L_Y$non_lazy_ptr, %esi movw %dx, (%esi) addw $4, %dx incl %ecx cmpl %eax, %ecx jne LBB1_2 # bb llvm-svn: 43375
-
Evan Cheng authored
stride may be rewritten using the stride of the compare instruction. llvm-svn: 43367
-
- Oct 25, 2007
-
-
Evan Cheng authored
llvm-svn: 43356
-
Evan Cheng authored
and the compaison is against a constant value, try eliminate the stride by moving the compare instruction to another stride and change its constant operand accordingly. e.g. loop: ... v1 = v1 + 3 v2 = v2 + 1 if (v2 < 10) goto loop => loop: ... v1 = v1 + 3 if (v1 < 30) goto loop llvm-svn: 43336
-
- Oct 24, 2007
-
-
Dale Johannesen authored
llvm-svn: 43309
-
Chris Lattner authored
llvm-svn: 43305
-
Chris Lattner authored
implementing cases related to PR1738. llvm-svn: 43289
-
- Oct 22, 2007
-
-
Dan Gohman authored
- Avoid attempting stride-reuse in the case that there are users that aren't addresses. In that case, there will be places where the multiplications won't be folded away, so it's better to try to strength-reduce them. - Several SSE intrinsics have operands that strength-reduction can treat as addresses. The previous item makes this more visible, as any non-address use of an IV can inhibit stride-reuse. - Make ValidStride aware of whether there's likely to be a base register in the address computation. This prevents it from thinking that things like stride 9 are valid on x86 when the base register is already occupied. Also, XFAIL the 2007-08-10-LEA16Use32.ll test; the new logic to avoid stride-reuse elimintes the LEA in the loop, so the test is no longer testing what it was intended to test. llvm-svn: 43231
-
Dan Gohman authored
SCEV subclasses to being non-static member functions of the ScalarEvolution class. llvm-svn: 43224
-
Anton Korobeynikov authored
- enable phi instructions demotion to stack - create alloca instructions in the entry block llvm-svn: 43208
-
- Oct 18, 2007
-
-
Devang Patel authored
Instead of loading small global string from memory, use integer constant. llvm-svn: 43148
-
Owen Anderson authored
llvm-svn: 43147
-
Chris Lattner authored
fixing some obviously broken code :( llvm-svn: 43141
-
Owen Anderson authored
in CodeExtractor and LoopSimplify unnecessary. Hartmut, could you confirm that this fixes the issues you were seeing? llvm-svn: 43115
-
Evan Cheng authored
llvm-svn: 43103
-
- Oct 17, 2007
-
-
Devang Patel authored
llvm-svn: 43083
-
Hartmut Kaiser authored
llvm-svn: 43081
-
Devang Patel authored
Apply "Instead of loading small c string constant, use integer constant directly" transformation while processing load instruction. llvm-svn: 43070
-
Devang Patel authored
llvm-svn: 43055
-
- Oct 15, 2007
-
-
Devang Patel authored
llvm-svn: 42985
-
- Oct 12, 2007
-
-
Devang Patel authored
Do not filter memmove. llvm-svn: 42930
-
Chris Lattner authored
llvm-svn: 42920
-
Gabor Greif authored
llvm-svn: 42892
-
Chris Lattner authored
Fix DecomposeSimpleLinearExpr to handle simple constants better. Don't nuke gep(bitcast(allocation)) if the bitcast(allocation) will fold the allocation. This fixes PR1728 and Instcombine/malloc3.ll llvm-svn: 42891
-
- Oct 11, 2007
-
-
Devang Patel authored
llvm-svn: 42864
-
- Oct 09, 2007
-
-
Devang Patel authored
Do not walk invalid iterator. llvm-svn: 42812
-
- Oct 06, 2007
-
-
Devang Patel authored
unswitch when frontier includes basic blocks that are not inside loop. llvm-svn: 42654
-