| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
For now, just grab the stream and perform the output on it directly.
llvm-svn: 32441
|
| |
|
|
| |
llvm-svn: 32440
|
| |
|
|
| |
llvm-svn: 32439
|
| |
|
|
|
|
|
| |
Transforms/ConstProp/bitcast.ll and fixes
SingleSource/Regression/C/2003-10-12-GlobalVarInitializers
llvm-svn: 32438
|
| |
|
|
| |
llvm-svn: 32436
|
| |
|
|
|
|
| |
type.
llvm-svn: 32434
|
| |
|
|
| |
llvm-svn: 32433
|
| |
|
|
| |
llvm-svn: 32432
|
| |
|
|
|
|
| |
dag combiner.
llvm-svn: 32431
|
| |
|
|
|
|
|
|
|
| |
Supports constant pools
Supports relocations to jump tables
Supports relocations within the data segment (global = address of global)
Allocates memory in a non-hacky for all non-code objects.
llvm-svn: 32430
|
| |
|
|
| |
llvm-svn: 32428
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
_pairtest:
movl 8(%esp), %eax
movl 4(%esp), %ecx
movd %eax, %xmm0
movd %ecx, %xmm1
addss %xmm0, %xmm1
movl 12(%esp), %eax
movss %xmm1, (%eax)
ret
instead of:
_pairtest:
subl $12, %esp
movl 20(%esp), %eax
movl %eax, 4(%esp)
movl 16(%esp), %eax
movl %eax, (%esp)
movss (%esp), %xmm0
addss 4(%esp), %xmm0
movl 24(%esp), %eax
movss %xmm0, (%eax)
addl $12, %esp
ret
llvm-svn: 32427
|
| |
|
|
| |
llvm-svn: 32426
|
| |
|
|
| |
llvm-svn: 32424
|
| |
|
|
|
|
|
|
| |
The rot example works if the type is cast to ubyte.
Move sroa examples together and upgrade them to HEAD syntax.
llvm-svn: 32423
|
| |
|
|
|
|
| |
This implements Transforms/ScalarRepl/union-packed.ll
llvm-svn: 32422
|
| |
|
|
|
|
| |
Regression/Transforms/IndVarsSimplify/2006-12-10-BitCast.ll
llvm-svn: 32420
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add support for promoting unions with fp values in them. This produces
our new int<->fp bitcast instructions, implementing
Transforms/ScalarRepl/union-fp-int.ll
As an example, this allows us to compile this:
union intfloat { int i; float f; };
float invsqrt(const float arg_x) {
union intfloat x = { .f = arg_x };
const float xhalf = arg_x * 0.5f;
x.i = 0x5f3759df - (x.i >> 1);
return x.f * (1.5f - xhalf * x.f * x.f);
}
into:
_invsqrt:
movss 4(%esp), %xmm0
movd %xmm0, %eax
sarl %eax
movl $1597463007, %ecx
subl %eax, %ecx
movd %ecx, %xmm1
mulss LCPI1_0, %xmm0
mulss %xmm1, %xmm0
movss LCPI1_1, %xmm2
mulss %xmm1, %xmm0
subss %xmm0, %xmm2
movl 8(%esp), %eax
mulss %xmm2, %xmm1
movss %xmm1, (%eax)
ret
instead of:
_invsqrt:
subl $4, %esp
movss 8(%esp), %xmm0
movss %xmm0, (%esp)
movl (%esp), %eax
movl $1597463007, %ecx
sarl %eax
subl %eax, %ecx
movl %ecx, (%esp)
mulss LCPI1_0, %xmm0
movss (%esp), %xmm1
mulss %xmm1, %xmm0
mulss %xmm1, %xmm0
movss LCPI1_1, %xmm2
subss %xmm0, %xmm2
mulss %xmm2, %xmm1
movl 12(%esp), %eax
movss %xmm1, (%eax)
addl $4, %esp
ret
llvm-svn: 32418
|
| |
|
|
|
|
|
| |
code (both asm & cbe) for Mingw32 target.
Removed autoconf checks for underscored versions of setjmp/longjmp.
llvm-svn: 32415
|
| |
|
|
| |
llvm-svn: 32413
|
| |
|
|
| |
llvm-svn: 32412
|
| |
|
|
|
|
| |
static dtors.
llvm-svn: 32411
|
| |
|
|
|
|
|
| |
.comm is in bytes
:-(
llvm-svn: 32408
|
| |
|
|
|
|
| |
if a variable has no initialization, I->getInitializer() will fail
llvm-svn: 32407
|
| |
|
|
| |
llvm-svn: 32394
|
| |
|
|
|
|
| |
instructions.
llvm-svn: 32393
|
| |
|
|
| |
llvm-svn: 32389
|
| |
|
|
|
|
| |
removed now.
llvm-svn: 32388
|
| |
|
|
| |
llvm-svn: 32387
|
| |
|
|
| |
llvm-svn: 32386
|
| |
|
|
|
|
| |
pass manager queuer.
llvm-svn: 32385
|
| |
|
|
|
|
| |
AnalysisResolver.
llvm-svn: 32383
|
| |
|
|
|
|
| |
top level manager. Use this info to findAnalysisPass.
llvm-svn: 32382
|
| |
|
|
| |
llvm-svn: 32381
|
| |
|
|
|
|
| |
Use one provided by toplevel manager.
llvm-svn: 32380
|
| |
|
|
| |
llvm-svn: 32379
|
| |
|
|
| |
llvm-svn: 32378
|
| |
|
|
|
|
| |
PMDataManager::findAnalysisPass()
llvm-svn: 32377
|
| |
|
|
| |
llvm-svn: 32376
|
| |
|
|
|
|
| |
MarkAliveBlocks.
llvm-svn: 32375
|
| |
|
|
| |
llvm-svn: 32373
|
| |
|
|
|
|
|
|
|
| |
Instead, the stat info is printed when llvm_shutdown() is called.
These also don't need static ctors, but getting rid of them is uglier:
still investigating. This reduces the number of static dtors in llvm from
~1400 to ~750.
llvm-svn: 32372
|
| |
|
|
| |
llvm-svn: 32371
|
| |
|
|
| |
llvm-svn: 32370
|
| |
|
|
| |
llvm-svn: 32368
|
| |
|
|
| |
llvm-svn: 32366
|
| |
|
|
| |
llvm-svn: 32364
|
| |
|
|
| |
llvm-svn: 32362
|
| |
|
|
| |
llvm-svn: 32361
|
| |
|
|
|
|
|
| |
tied to another oeprand, 2) whether is is being tied to by another operand. So
the destination operand of a two-address MI can be correctly identified.
llvm-svn: 32354
|