| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
from various APIs, addressing PR5325.
llvm-svn: 86231
|
| |
|
|
|
|
| |
subclass of AllocationInst, so it no longer is necessary.
llvm-svn: 84969
|
| |
|
|
| |
llvm-svn: 82929
|
| |
|
|
|
|
| |
update all the callers.
llvm-svn: 82889
|
| |
|
|
|
|
|
|
| |
calls as to MallocInst.
Reviewed by Dan Gohman.
llvm-svn: 82300
|
| |
|
|
| |
llvm-svn: 80766
|
| |
|
|
|
|
| |
This required converting a bunch of stuff off DOUT and other cleanups.
llvm-svn: 79819
|
| |
|
|
| |
llvm-svn: 77716
|
| |
|
|
|
|
|
|
|
|
| |
- Some clients which used DOUT have moved to DEBUG. We are deprecating the
"magic" DOUT behavior which avoided calling printing functions when the
statement was disabled. In addition to being unnecessary magic, it had the
downside of leaving code in -Asserts builds, and of hiding potentially
unnecessary computations.
llvm-svn: 77019
|
| |
|
|
| |
llvm-svn: 76702
|
| |
|
|
|
|
|
|
|
|
| |
isSafeToSpeculativelyExecute. The new method is a bit closer to what
the callers actually care about in that it rejects more things callers
don't want. It also adds more precise handling for integer
division, and unifies code for analyzing the legality of a speculative
load.
llvm-svn: 76150
|
| |
|
|
|
|
| |
AllocaInst and MallocInst.
llvm-svn: 75863
|
| |
|
|
| |
llvm-svn: 75703
|
| |
|
|
|
|
| |
the [I|F]CmpInst constructors. Who knew!?
llvm-svn: 75200
|
| |
|
|
|
|
| |
files.
llvm-svn: 74844
|
| |
|
|
|
|
| |
a key is present in a std::map or DenseMap to use find instead.
llvm-svn: 74676
|
| |
|
|
|
|
|
|
| |
the optimizers about this. For example, a readonly
function with no uses cannot be removed unless it is
also marked nounwind.
llvm-svn: 71071
|
| |
|
|
| |
llvm-svn: 60190
|
| |
|
|
| |
llvm-svn: 55779
|
| |
|
|
| |
llvm-svn: 52243
|
| |
|
|
|
|
|
|
| |
like general badness to me, likely to cause code explosion).
Patch by Florian Brandner.
llvm-svn: 52223
|
| |
|
|
|
|
| |
use it instead of duplicating its functionality.
llvm-svn: 51499
|
| |
|
|
|
|
| |
way down.
llvm-svn: 51183
|
| |
|
|
|
|
| |
Patch by Matthijs Kooijman.
llvm-svn: 51154
|
| |
|
|
| |
llvm-svn: 51063
|
| |
|
|
|
|
|
| |
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
|
| |
|
|
|
|
| |
a call to Instruction::isUsedOutsideOfBlock.
llvm-svn: 50005
|
| |
|
|
| |
llvm-svn: 49657
|
| |
|
|
|
|
| |
which is significantly more efficient.
llvm-svn: 49614
|
| |
|
|
|
|
| |
adding <map> to many files that actually do need it.
llvm-svn: 48667
|
| |
|
|
| |
llvm-svn: 45418
|
| |
|
|
|
|
|
|
| |
metric is way off for these in general, and this works around
buggy code like that in PR1764. we'll see if there is a big
performance impact of this. If so, I'll revert it tomorrow.
llvm-svn: 43668
|
| |
|
|
| |
llvm-svn: 36873
|
| |
|
|
| |
llvm-svn: 36662
|
| |
|
|
|
|
|
| |
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652
|
| |
|
|
| |
llvm-svn: 36632
|
| |
|
|
|
|
|
| |
the Transforms library. This reduces debug library size by 132 KB, debug
binary size by 376 KB, and reduces link time for llvm tools slightly.
llvm-svn: 33939
|
| |
|
|
|
|
|
| |
converted, we lose a static initializer. This also allows GCC to emit warnings
about unused statistics.
llvm-svn: 32690
|
| |
|
|
|
|
| |
is 'unsigned'.
llvm-svn: 32279
|
| |
|
|
| |
llvm-svn: 31923
|
| |
|
|
| |
llvm-svn: 30623
|
| |
|
|
|
|
| |
bit. This fixes Regression/Transforms/TailDup/MergeTest.ll
llvm-svn: 30237
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For Transforms/TailDup/if-tail-dup.ll, f.e., it produces:
_foo:
movl 8(%esp), %eax
movl 4(%esp), %ecx
testl $1, %ecx
je LBB1_2 #cond_next
LBB1_1: #cond_true
movl $1, (%eax)
LBB1_2: #cond_next
testl $2, %ecx
je LBB1_4 #cond_next10
LBB1_3: #cond_true6
movl $1, 4(%eax)
LBB1_4: #cond_next10
testl $4, %ecx
je LBB1_6 #cond_next18
LBB1_5: #cond_true14
movl $1, 8(%eax)
LBB1_6: #cond_next18
testl $8, %ecx
je LBB1_8 #return
LBB1_7: #cond_true22
movl $1, 12(%eax)
ret
LBB1_8: #return
ret
instead of:
_foo:
movl 4(%esp), %eax
testl $2, %eax
sete %cl
movl 8(%esp), %edx
testl $1, %eax
je LBB1_2 #cond_next
LBB1_1: #cond_true
movl $1, (%edx)
testb %cl, %cl
jne LBB1_4 #cond_next10
jmp LBB1_3 #cond_true6
LBB1_2: #cond_next
testb %cl, %cl
jne LBB1_4 #cond_next10
LBB1_3: #cond_true6
movl $1, 4(%edx)
testl $4, %eax
je LBB1_6 #cond_next18
jmp LBB1_5 #cond_true14
LBB1_4: #cond_next10
testl $4, %eax
je LBB1_6 #cond_next18
LBB1_5: #cond_true14
movl $1, 8(%edx)
testl $8, %eax
je LBB1_8 #return
jmp LBB1_7 #cond_true22
LBB1_6: #cond_next18
testl $8, %eax
je LBB1_8 #return
LBB1_7: #cond_true22
movl $1, 12(%edx)
ret
LBB1_8: #return
ret
llvm-svn: 30158
|
| |
|
|
| |
llvm-svn: 29925
|
| |
|
|
| |
llvm-svn: 25514
|
| |
|
|
| |
llvm-svn: 21427
|
| |
|
|
| |
llvm-svn: 18110
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#define CL0(a) case a: f(); goto c;
#define CL1(a) CL0(a##0) CL0(a##1) CL0(a##2) CL0(a##3) CL0(a##4) CL0(a##5) \
CL0(a##6) CL0(a##7) CL0(a##8) CL0(a##9)
#define CL2(a) CL1(a##0) CL1(a##1) CL1(a##2) CL1(a##3) CL1(a##4) CL1(a##5) \
CL1(a##6) CL1(a##7) CL1(a##8) CL1(a##9)
#define CL3(a) CL2(a##0) CL2(a##1) CL2(a##2) CL2(a##3) CL2(a##4) CL2(a##5) \
CL2(a##6) CL2(a##7) CL2(a##8) CL2(a##9)
#define CL4(a) CL3(a##0) CL3(a##1) CL3(a##2) CL3(a##3) CL3(a##4) CL3(a##5) \
CL3(a##6) CL3(a##7) CL3(a##8) CL3(a##9)
void f();
void a() {
int b;
c: switch (b) {
CL4(1)
}
}
This comes from GCC PR 15524
llvm-svn: 17390
|
| |
|
|
|
|
|
| |
an instruction if it can be hoisted to a common dominator of the block.
This implements: test/Regression/Transforms/TailDup/MergeTest.ll
llvm-svn: 16758
|
| |
|
|
| |
llvm-svn: 16432
|