Chris Lattner
0b46ffb643
This case isn't needed with recent changes to ConstantInt::get
...
llvm-svn: 32472
2006-12-12 05:19:46 +00:00
Chris Lattner
0ecfce975c
split up inttoptr from ptrtoint handling, the cases aren't similar at all.
...
llvm-svn: 32471
2006-12-12 05:18:19 +00:00
Chris Lattner
4c064bcc3e
the operand of a bitcast is always the right size, just emit it in place.
...
llvm-svn: 32470
2006-12-12 05:14:13 +00:00
Reid Spencer
562b83c7df
Change inferred getCast into specific getCast. Passes all tests.
...
llvm-svn: 32469
2006-12-12 05:05:00 +00:00
Chris Lattner
a9b75a7e35
Patch for PR1045 and Transforms/ScalarRepl/2006-12-11-SROA-Crash.ll
...
llvm-svn: 32468
2006-12-12 04:24:41 +00:00
Chris Lattner
0fd9c58f6a
Revert Nate's patch to fix X86/store-fp-constant.ll. With the dag combiner
...
and legalizer separated like they currently are, I don't see a way to handle
this xform.
llvm-svn: 32466
2006-12-12 04:18:56 +00:00
Chris Lattner
df2345fcbe
make this code more aggressive about turning store fpimm into store int imm.
...
This is not sufficient to fix X86/store-fp-constant.ll
llvm-svn: 32465
2006-12-12 04:16:14 +00:00
Chris Lattner
51c27947c6
teach scev to analyze X*4|1 like X*4+c. This allows us to produce:
...
LBB1_1: #bb
movdqa (%esi), %xmm2
movaps %xmm2, %xmm3
punpcklbw %xmm0, %xmm3
movaps %xmm3, %xmm4
punpcklwd %xmm0, %xmm4
cvtdq2ps %xmm4, %xmm4
mulps %xmm1, %xmm4
movaps %xmm4, (%edi)
leal 1(,%eax,4), %ebx
shll $4, %ebx
punpckhwd %xmm0, %xmm3
cvtdq2ps %xmm3, %xmm3
mulps %xmm1, %xmm3
movaps %xmm3, (%edx,%ebx)
leal 2(,%eax,4), %ebx
shll $4, %ebx
punpckhbw %xmm0, %xmm2
movaps %xmm2, %xmm3
punpcklwd %xmm0, %xmm3
cvtdq2ps %xmm3, %xmm3
mulps %xmm1, %xmm3
movaps %xmm3, (%edx,%ebx)
leal 3(,%eax,4), %ebx
shll $4, %ebx
punpckhwd %xmm0, %xmm2
cvtdq2ps %xmm2, %xmm2
mulps %xmm1, %xmm2
movaps %xmm2, (%edx,%ebx)
addl $64, %edi
incl %eax
addl $16, %esi
cmpl %ecx, %eax
jne LBB1_1 #bb
instead of:
LBB1_1: #bb
movdqa (%esi), %xmm2
movaps %xmm2, %xmm3
punpcklbw %xmm0, %xmm3
movaps %xmm3, %xmm4
punpcklwd %xmm0, %xmm4
cvtdq2ps %xmm4, %xmm4
mulps %xmm1, %xmm4
movaps %xmm4, (%edi)
leal 1(,%eax,4), %ebx
shll $4, %ebx
punpckhwd %xmm0, %xmm3
cvtdq2ps %xmm3, %xmm3
mulps %xmm1, %xmm3
movaps %xmm3, (%edx,%ebx)
leal 2(,%eax,4), %ebx
shll $4, %ebx
punpckhbw %xmm0, %xmm2
movaps %xmm2, %xmm3
punpcklwd %xmm0, %xmm3
cvtdq2ps %xmm3, %xmm3
mulps %xmm1, %xmm3
movaps %xmm3, (%edx,%ebx)
leal 3(,%eax,4), %ebx
shll $4, %ebx
punpckhwd %xmm0, %xmm2
cvtdq2ps %xmm2, %xmm2
mulps %xmm1, %xmm2
movaps %xmm2, (%edx,%ebx)
addl $64, %edi
incl %eax
addl $16, %esi
cmpl %ecx, %eax
jne LBB1_1 #bb
for a testcase.
llvm-svn: 32463
2006-12-12 02:26:09 +00:00
Reid Spencer
5af6b6baf1
Tidy up a bit.
...
llvm-svn: 32462
2006-12-12 01:32:02 +00:00
Reid Spencer
5bc563a190
Change inferred cast creation calls to more specific cast creations.
...
llvm-svn: 32460
2006-12-12 01:17:41 +00:00
Rafael Espindola
d29cb12dfc
use MVN to handle small negative constants
...
llvm-svn: 32459
2006-12-12 01:03:11 +00:00
Reid Spencer
3fbfed6e2c
Implement getIntegerCast and getFPCast for ConstantExpr. These are similar
...
to the createIntegerCast and createFPCast for CastInst instructions.
llvm-svn: 32457
2006-12-12 00:51:07 +00:00
Reid Spencer
a82b285a69
Implement createIntegerCast and createFPCast factory methods for handling
...
integer and floating point cast creation. createIntegerCast generates
ZExt/SExt, BitCast or Trunc. createFPCast generates FPExt, Bitcast, or
FPTrunc.
llvm-svn: 32456
2006-12-12 00:49:44 +00:00
Rafael Espindola
b8163fd828
add mvn
...
llvm-svn: 32454
2006-12-12 00:37:38 +00:00
Reid Spencer
d2390e3b0a
Fix the BitCastUnion type for 32-bit targets.
...
llvm-svn: 32453
2006-12-12 00:11:08 +00:00
Rafael Espindola
e3aafd29a9
add note
...
llvm-svn: 32452
2006-12-11 23:56:10 +00:00
Chris Lattner
fb4898fdd8
Another step forward in PPC64 JIT support: we now no-longer need stubs
...
emitted for external globals in PPC64-JIT-PIC mode (which is good because
we didn't handle them before!).
This also fixes a bug handling the picbase delta, which we would get wrong
in some cases.
llvm-svn: 32451
2006-12-11 23:22:45 +00:00
Reid Spencer
0ed6e66cf3
Create the cast constant expression that was read instead of attempting
...
to infer the cast from its operand and type. This fixes:
test/Regression/Bytecode/2006-12-11-Cast-ConstExpr.ll
llvm-svn: 32450
2006-12-11 23:20:20 +00:00
Chris Lattner
7f60301c69
getInstrItineraryData shouldn't copy the itineraries
...
llvm-svn: 32448
2006-12-11 21:42:55 +00:00
Reid Spencer
f48e2567ae
Fix constant folding of FP->int due to cut & paste error in last commit.
...
llvm-svn: 32447
2006-12-11 21:27:28 +00:00
Reid Spencer
0549f720b2
Implement correct bitcast of int<->float and long<->double by using a
...
union to perform the bitcast.
llvm-svn: 32444
2006-12-11 20:39:15 +00:00
Evan Cheng
e182862c91
Re-apply changes that were backed out and fix a naughty typo.
...
llvm-svn: 32442
2006-12-11 19:27:14 +00:00
John Criswell
d5817b08f5
It seems the llvm::OStream class does not handle stream manipulators.
...
For now, just grab the stream and perform the output on it directly.
llvm-svn: 32441
2006-12-11 19:15:36 +00:00
Chris Lattner
7124b0d561
Revert changes that broke oggenc on ppc
...
llvm-svn: 32440
2006-12-11 18:53:38 +00:00
Jim Laskey
e2a261ad36
Missing opcode.
...
llvm-svn: 32439
2006-12-11 18:45:56 +00:00
Chris Lattner
f512c0d8e5
Implement correct constant folding of bitcast. This implements
...
Transforms/ConstProp/bitcast.ll and fixes
SingleSource/Regression/C/2003-10-12-GlobalVarInitializers
llvm-svn: 32438
2006-12-11 18:30:27 +00:00
Jim Laskey
911ae665d0
Layout proper frame for ppc64.
...
llvm-svn: 32436
2006-12-11 18:10:54 +00:00
Evan Cheng
93c75d4cfb
Don't convert store double C, Ptr to store long C, Ptr if i64 is not a legal type.
...
llvm-svn: 32434
2006-12-11 17:25:19 +00:00
Evan Cheng
4eebfee858
f32 / f64 node is expanded to one i32 / i64 node.
...
llvm-svn: 32433
2006-12-11 06:50:04 +00:00
Evan Cheng
44f9ec68ab
Clean up some bad code.
...
llvm-svn: 32432
2006-12-11 06:25:26 +00:00
Nate Begeman
2566f75e7a
Move something that should be in the dag combiner from the legalizer to the
...
dag combiner.
llvm-svn: 32431
2006-12-11 02:23:46 +00:00
Nate Begeman
b1b1aaa4e5
Properly mangles symbol table names
...
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
2006-12-11 02:20:45 +00:00
Chris Lattner
6ea5a77a93
fix typo
...
llvm-svn: 32428
2006-12-11 02:16:58 +00:00
Chris Lattner
8f2a26ac12
Update note, with the SROA change, we now produce:
...
_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
2006-12-11 01:20:25 +00:00
Chris Lattner
28e7eaf6b8
trunc to integer, not to FP.
...
llvm-svn: 32426
2006-12-11 01:17:00 +00:00
Chris Lattner
a6428b2ce4
this is done
...
llvm-svn: 32424
2006-12-11 01:01:03 +00:00
Chris Lattner
48e3989461
Evan implemented the machineinstr improvements.
...
The rot example works if the type is cast to ubyte.
Move sroa examples together and upgrade them to HEAD syntax.
llvm-svn: 32423
2006-12-11 00:44:03 +00:00
Chris Lattner
a8eec08185
implement promotion of unions containing two packed types of the same width.
...
This implements Transforms/ScalarRepl/union-packed.ll
llvm-svn: 32422
2006-12-11 00:35:08 +00:00
Chris Lattner
e31f99af99
clarify some comments, simplify some checks, fix:
...
Regression/Transforms/IndVarsSimplify/2006-12-10-BitCast.ll
llvm-svn: 32420
2006-12-11 00:12:31 +00:00
Chris Lattner
098fb42690
* Eliminate calls to CastInst::createInferredCast.
...
* 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
2006-12-10 23:56:50 +00:00
Anton Korobeynikov
e76b69846d
Cleaned setjmp/longjmp lowering interfaces. Now we're producing right
...
code (both asm & cbe) for Mingw32 target.
Removed autoconf checks for underscored versions of setjmp/longjmp.
llvm-svn: 32415
2006-12-10 23:12:42 +00:00
Jim Laskey
3fa703d088
Reverting until finding the cause of secondary bugs.
...
llvm-svn: 32413
2006-12-10 13:09:42 +00:00
Jim Laskey
a8f4c1d137
__PPC64CompilationCallback code was allowing registers to be clobbered by stub.
...
llvm-svn: 32412
2006-12-10 12:13:31 +00:00
Chris Lattner
6df6fa3694
fix PR1039 by making timing info be destroyed by llvm_shutdown, not by
...
static dtors.
llvm-svn: 32411
2006-12-10 07:40:46 +00:00
Rafael Espindola
9fe91fc84f
.align is in bits
...
.comm is in bytes
:-(
llvm-svn: 32408
2006-12-10 02:53:14 +00:00
Rafael Espindola
8251abb0e9
fix test/Regression/CodeGen/X86/weak.ll
...
if a variable has no initialization, I->getInitializer() will fail
llvm-svn: 32407
2006-12-09 23:14:08 +00:00
Evan Cheng
a366d082b5
Preliminary soft float support.
...
llvm-svn: 32394
2006-12-09 02:42:38 +00:00
Evan Cheng
f1e9ec7225
Added option -soft-float to generate SW fp library calls instead of fp instructions.
...
llvm-svn: 32393
2006-12-09 02:41:30 +00:00
Devang Patel
1dab3b3558
Analysis resolver now manages AnalysisImpls for the given patch.
...
llvm-svn: 32389
2006-12-09 01:11:34 +00:00
Devang Patel
a330306e9b
Top level pass manager keeps track of other managers, so this can be
...
removed now.
llvm-svn: 32388
2006-12-09 00:09:12 +00:00
Devang Patel
73cf028f5f
Use analysis resolver to find the info.
...
llvm-svn: 32387
2006-12-09 00:07:38 +00:00
Devang Patel
385edd79c5
Do not drop ImmutablePasses on the floor.
...
llvm-svn: 32386
2006-12-08 23:57:43 +00:00
Devang Patel
4e6c9b0ad9
Set AnalysisResolver for the passes when they are inserted into
...
pass manager queuer.
llvm-svn: 32385
2006-12-08 23:53:00 +00:00
Devang Patel
6f0bb6fbed
Add AnalysisResolver_New. It is a replacement for existing
...
AnalysisResolver.
llvm-svn: 32383
2006-12-08 23:28:54 +00:00
Devang Patel
17fec0924c
Keep track of other pass managers, that are not directly managed by
...
top level manager. Use this info to findAnalysisPass.
llvm-svn: 32382
2006-12-08 23:11:43 +00:00
Devang Patel
1342f262e3
Implement top level FunctionPassManager::run(Function &F)
...
llvm-svn: 32381
2006-12-08 22:57:48 +00:00
Devang Patel
ddcef36da4
Do not keep yet another list of pass managers in PassManagerImpl_New.
...
Use one provided by toplevel manager.
llvm-svn: 32380
2006-12-08 22:47:25 +00:00
Devang Patel
f0c7476178
Remove unused schedulePass() parameter.
...
llvm-svn: 32379
2006-12-08 22:34:02 +00:00
Devang Patel
8ff822772f
Remove unused getAnalysisPass and getAnalysisPassFromManager
...
llvm-svn: 32378
2006-12-08 22:32:32 +00:00
Devang Patel
a4ef9062bf
Implement PMTopLevel::findAnalysisPass() and
...
PMDataManager::findAnalysisPass()
llvm-svn: 32377
2006-12-08 22:30:11 +00:00
Rafael Espindola
620b3430c8
%progbits not @progbits
...
llvm-svn: 32376
2006-12-08 22:06:02 +00:00
Reid Spencer
069149765d
Incorporate any changes in the successor blocks into the result of
...
MarkAliveBlocks.
llvm-svn: 32375
2006-12-08 21:52:01 +00:00
Rafael Espindola
7e99603152
add \"aw\",@progbits" to ctors and dtors
...
llvm-svn: 32373
2006-12-08 21:24:58 +00:00
Chris Lattner
9c52dc6c34
Change the implementation of statistic to not need destructors at all.
...
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
2006-12-08 20:00:42 +00:00
Devang Patel
7f1091cb14
During runOnModule() do initialization and finalization.
...
llvm-svn: 32371
2006-12-08 19:04:09 +00:00
Devang Patel
ebab6b3112
Reuse code. Directly use runOnFunction().
...
llvm-svn: 32370
2006-12-08 19:03:05 +00:00
Devang Patel
4833df8e9e
Implement FunctionPassManager_New::FunctionPassManager_New(ModuleProvider *P)
...
llvm-svn: 32368
2006-12-08 18:57:16 +00:00
Evan Cheng
88a55bdd64
Move findTiedToSrcOperand to TargetInstrDescriptor.
...
llvm-svn: 32366
2006-12-08 18:45:48 +00:00
Rafael Espindola
514fcabb29
fix truncstorei1
...
llvm-svn: 32364
2006-12-08 18:41:21 +00:00
Andrew Lenharth
36e3fe118f
Hopefully these are the regenerated files
...
llvm-svn: 32362
2006-12-08 18:07:09 +00:00
Andrew Lenharth
d115fe7ce3
Packed Structures
...
llvm-svn: 32361
2006-12-08 18:06:16 +00:00
Evan Cheng
6f02378443
Proper fix for PR1037: to determine is a VR is a modref, check 1) whether it is
...
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
2006-12-08 08:02:34 +00:00
Evan Cheng
79bcfb0e11
findTiedToSrcOperand() changed.
...
llvm-svn: 32353
2006-12-08 07:59:51 +00:00
Evan Cheng
dfec38a575
Use MI's TargetInstrDescriptor.
...
llvm-svn: 32352
2006-12-08 07:57:56 +00:00
Chris Lattner
51a6154ce5
Fix a bug introduced by the streams patch. DEBUG code was made unconditional.
...
llvm-svn: 32351
2006-12-08 05:41:26 +00:00
Chris Lattner
5d79e6ff6c
this is an initial patch to switch the ppc64 jit over to working in PIC mode,
...
which allows the code to be above the 2G marker. We still need to JIT emit
dyld stubs to support external, weak, common, etc globals, but that will
happen tomorrow.
llvm-svn: 32348
2006-12-08 04:54:03 +00:00
Chris Lattner
02a2f33279
add a note
...
llvm-svn: 32347
2006-12-08 02:01:32 +00:00
Devang Patel
94eedf9be1
BasicBlockPassManager_New::runOnFunction()
...
Do initialization and finalization.
llvm-svn: 32346
2006-12-08 01:38:28 +00:00
Devang Patel
0fc48cda15
doInitialization and doFinalization for BasicBlockPassManager_New
...
llvm-svn: 32345
2006-12-08 00:59:05 +00:00
Devang Patel
67bb3725d4
Reimplement removeDeadPasses().
...
llvm-svn: 32344
2006-12-08 00:37:52 +00:00
Andrew Lenharth
0b4830a079
Simplify a bit
...
llvm-svn: 32343
2006-12-07 23:55:55 +00:00
Devang Patel
3364b5821e
set Last User.
...
llvm-svn: 32342
2006-12-07 23:55:10 +00:00
Chris Lattner
ce8d432068
fix incorrect encoding of rldicr, used by ppc64 function stubs, etc.
...
llvm-svn: 32341
2006-12-07 23:44:07 +00:00
Bill Wendling
fe0af72bc4
Don't use <sstream> in Streams.h but <iosfwd> instead.
...
llvm-svn: 32340
2006-12-07 23:41:45 +00:00
Devang Patel
df9f0e26f9
Maintain level(or depth) of pass manager in pass manager food chain.
...
llvm-svn: 32339
2006-12-07 23:24:58 +00:00
Devang Patel
19a733b718
New method, PMDataManager::collectRequiredAnalysisPasses()
...
llvm-svn: 32338
2006-12-07 23:05:44 +00:00
Rafael Espindola
bb753d7121
fix alignment
...
llvm-svn: 32337
2006-12-07 22:38:06 +00:00
Chris Lattner
db346e68a9
Fix CodeGen/PowerPC/2006-12-07-SelectCrash.ll on PPC64
...
llvm-svn: 32336
2006-12-07 22:36:47 +00:00
Devang Patel
b361bb840c
When new pass manager is created, initialize available analysis info
...
of existing manager at the same level. Otherwise, such info may be
considered as available, which not true.
llvm-svn: 32334
2006-12-07 22:34:21 +00:00
Bill Wendling
f13d78d3b8
What should be the last unnecessary <iostream>s in the library.
...
llvm-svn: 32333
2006-12-07 22:21:48 +00:00
Devang Patel
967a319698
PMDataManager does not maintain LastUser info.
...
llvm-svn: 32332
2006-12-07 22:17:09 +00:00
Chris Lattner
ebe31092ff
fix CodeGen/PowerPC/2006-12-07-LargeAlloca.ll on ppc64
...
llvm-svn: 32331
2006-12-07 22:15:58 +00:00
Devang Patel
9be7d811ae
Make current pass info available _after_ removing info that is not
...
preserved.
llvm-svn: 32329
2006-12-07 22:09:36 +00:00
Devang Patel
145469fbf2
Add TODOs
...
llvm-svn: 32328
2006-12-07 21:58:50 +00:00
Devang Patel
a15af91097
Fix thinko.
...
llvm-svn: 32327
2006-12-07 21:44:12 +00:00
Devang Patel
b945504462
Top level manages schedule the pass immediately at the time of insertion.
...
llvm-svn: 32326
2006-12-07 21:32:57 +00:00
Devang Patel
ff5d922b04
Now FunctionPassManagerImpl_New and PassManagerImpl_New derives from
...
PMTopLevelManager.
llvm-svn: 32325
2006-12-07 21:27:23 +00:00
Devang Patel
81b62a7e2c
Reimplement schedulePass interface. Move it into PMTopLevelManager.
...
llvm-svn: 32324
2006-12-07 21:10:57 +00:00
Devang Patel
b2ce1fc089
While initializing AvailableAnalysis info, make ImmutablePasses available
...
immediately.
llvm-svn: 32323
2006-12-07 21:02:08 +00:00
Devang Patel
adf0a3a147
Add ImmutablePass into the list of info managed by top level pass
...
manager.
llvm-svn: 32322
2006-12-07 20:51:18 +00:00
Bill Wendling
4d1444725b
Removed more <iostream> includes
...
llvm-svn: 32321
2006-12-07 20:28:15 +00:00
Bill Wendling
23b8b13c9d
Removing even more <iostream> includes.
...
llvm-svn: 32320
2006-12-07 20:04:42 +00:00
Devang Patel
0117a3e391
If pass reserves all analysis info then each info is not separately
...
included in PreservedSet. So check getPreservesAll() first.
llvm-svn: 32319
2006-12-07 20:03:49 +00:00
Devang Patel
318adc0e9d
Pass Managers themselves do not invalidate any analysis info.
...
llvm-svn: 32318
2006-12-07 19:57:52 +00:00
Devang Patel
8c988e1dc2
Add a handle to the top level pass manager in PMDataManager.
...
llvm-svn: 32317
2006-12-07 19:54:15 +00:00
Devang Patel
e6f5ded0ef
Cosmetic markers to divide code in separate chunks.
...
llvm-svn: 32316
2006-12-07 19:39:39 +00:00
Devang Patel
89a14dfcd0
s/noteDownAvailableAnalysis/recordAvailableAnalysis
...
While recording available analysis, include interfaces implemented.
llvm-svn: 32315
2006-12-07 19:33:53 +00:00
Devang Patel
e4c87643a5
Add PMTopLevelManager. It is not used yet.
...
llvm-svn: 32314
2006-12-07 19:21:29 +00:00
Devang Patel
7e140ec79c
RequiredAnalysis support is buggy and not used at the moment so remove
...
the code. Add TODO note.
llvm-svn: 32313
2006-12-07 18:47:25 +00:00
Devang Patel
b43799cea4
s/clearAnalysis/initializeAnalysisInfo/g
...
llvm-svn: 32312
2006-12-07 18:41:09 +00:00
Devang Patel
364530904f
s/CommonPassManagerImpl/PMDataManager/g
...
llvm-svn: 32311
2006-12-07 18:36:24 +00:00
Rafael Espindola
a908b2dfd9
make sure that we don't use a common symbol if a section was specified
...
llvm-svn: 32310
2006-12-07 18:33:58 +00:00
Devang Patel
580df8ade2
Add overview of pass manager.
...
llvm-svn: 32309
2006-12-07 18:23:30 +00:00
Andrew Lenharth
8261b94b09
Be sure to grab weak functions too, and make implicit defs comments
...
llvm-svn: 32308
2006-12-07 17:39:14 +00:00
Reid Spencer
cfce6d2ee4
Revision 1.83 causes PR1037.
...
Reverted.
llvm-svn: 32305
2006-12-07 16:21:19 +00:00
Reid Spencer
076e7af638
Provide a getOpcode() method on CmpInst to ensure the opcode is returned
...
as the right type. Use this to shorten some code.
llvm-svn: 32300
2006-12-07 04:18:31 +00:00
Evan Cheng
b5a57532b0
Initialize {Min|Max}CSFrameIndex properly.
...
llvm-svn: 32299
2006-12-07 02:25:34 +00:00
Bill Wendling
a3246c4272
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
...
now cerr, cout, and NullStream resp.
llvm-svn: 32298
2006-12-07 01:30:32 +00:00
Chris Lattner
f5fd4be9dd
Fix i64 uint_to_fp on ppc64
...
llvm-svn: 32297
2006-12-07 01:24:16 +00:00
Evan Cheng
f4788fe306
MI keeps a ptr of TargetInstrDescriptor, use it.
...
llvm-svn: 32296
2006-12-07 01:21:59 +00:00
Evan Cheng
7a6220ddda
getOperandConstraint returns -1 if the operand does have the specific constraint. This bug was causing excessive spills.
...
llvm-svn: 32295
2006-12-07 00:46:04 +00:00
Chris Lattner
5adcc9ae58
implement sextinreg i8->i64 and i16->i64
...
llvm-svn: 32293
2006-12-06 21:46:13 +00:00
Chris Lattner
82157643ed
fix another sradi encoding bug. This fixes Olden/health with the ppc64 jit.
...
llvm-svn: 32291
2006-12-06 21:35:10 +00:00
Reid Spencer
bb6793b8b5
Always pass "true" to isMaxValue(bool) because we know the type is LongTy.
...
llvm-svn: 32290
2006-12-06 21:27:07 +00:00
Reid Spencer
166f4dd036
Adjust to new ConstantIntegral interface for Max/Min tests.
...
llvm-svn: 32289
2006-12-06 20:45:15 +00:00
Reid Spencer
ff6cd88f93
Update ConstantIntegral Max/Min tests for new interface.
...
llvm-svn: 32288
2006-12-06 20:39:57 +00:00
Reid Spencer
19cb81393d
For PR950:
...
Remove the getMaxValue and getMinValue functions from ConstantIntegral.
They don't make sense for a signless type. Also, for isMaxValue and
isMinValue, have the caller provided the signedness rather than obtaining
it from the constant's type.
llvm-svn: 32287
2006-12-06 20:30:17 +00:00
Chris Lattner
6d74c6ebec
fix the jit encoding of sradi, simplify the MDForm1 description.
...
llvm-svn: 32285
2006-12-06 20:02:54 +00:00
Chris Lattner
d4e8f5d141
add relocation support for ppc64 branches.
...
llvm-svn: 32284
2006-12-06 19:40:04 +00:00
Chris Lattner
e626f6de68
merge the Statistic and StatisticBase classes, eliminating virtual methods
...
and eliminating #includes from the Statistic.h file.
llvm-svn: 32282
2006-12-06 18:20:44 +00:00
Chris Lattner
5e09d350aa
add #include
...
llvm-svn: 32281
2006-12-06 18:19:53 +00:00
Chris Lattner
06ba0b8202
add missing #include
...
llvm-svn: 32280
2006-12-06 18:14:47 +00:00
Chris Lattner
a531ce882e
Detemplatize the Statistic class. The only type it is instantiated with
...
is 'unsigned'.
llvm-svn: 32279
2006-12-06 17:46:33 +00:00
Jim Laskey
0284aadc80
Some addresssed should be 64-bit and some shouldn't.
...
llvm-svn: 32278
2006-12-06 17:43:18 +00:00
Jim Laskey
0ffc5bc871
Make it easier for gdb to find the return address.
...
llvm-svn: 32277
2006-12-06 17:42:06 +00:00
Rafael Espindola
7ad537568f
print weak references
...
llvm-svn: 32276
2006-12-06 13:35:10 +00:00
Evan Cheng
59494f9e3d
Move copyKillDeadInfo out-of-line. Add findRegisterUseOperand().
...
llvm-svn: 32273
2006-12-06 08:27:42 +00:00
Chris Lattner
f92de9a3d2
Remove the dead CachedWriter class.
...
llvm-svn: 32271
2006-12-06 06:40:49 +00:00
Chris Lattner
5c252d195f
Simplify code
...
llvm-svn: 32270
2006-12-06 06:35:25 +00:00
Chris Lattner
a428b29cdb
printName is almost always true. In the cases that mattered where it was false,
...
it was effectively set to true by this:
- if ((PrintName || isa<GlobalValue>(V)) && V->hasName())
+ if (V->hasName())
Delete printname entirely.
llvm-svn: 32265
2006-12-06 06:24:27 +00:00
Chris Lattner
3d1758e08c
Remove the 'printname' argument to WriteAsOperand. It is always true, and
...
passing false would make the asmprinter fail anyway.
llvm-svn: 32264
2006-12-06 06:16:21 +00:00
Chris Lattner
c73d71336d
The hasSlot methods are gone.
...
Remove the 'PrintName' argument to WriteAsOperand, as it is always true.
Only call getOrCreateSlot on things that are valid.
llvm-svn: 32263
2006-12-06 06:15:43 +00:00
Chris Lattner
fd152e4ed6
These asm printers shouldn't use assembly/writer.h
...
llvm-svn: 32262
2006-12-06 06:13:25 +00:00
Chris Lattner
cc4a08f45b
remove unused api, simplify some code
...
llvm-svn: 32260
2006-12-06 05:55:41 +00:00
Chris Lattner
04357677e5
remove more code that was only used by the bc writer
...
llvm-svn: 32259
2006-12-06 05:50:41 +00:00
Chris Lattner
9a36bc328e
remove dead code left over from when this functionality was shared with the
...
bcwriter.
llvm-svn: 32258
2006-12-06 05:42:32 +00:00
Chris Lattner
7ee127edad
rename createSlot -> getOrCreateSlot.
...
llvm-svn: 32256
2006-12-06 05:27:40 +00:00
Chris Lattner
8f97b3e24b
clean up some sloppy and inconsistent spacing
...
llvm-svn: 32255
2006-12-06 05:12:21 +00:00
Chris Lattner
74b8045bc5
wrap long lines
...
llvm-svn: 32254
2006-12-06 04:41:52 +00:00
Reid Spencer
3e2d6cd0d1
Fix a CmpInst writing bug by removing merge cruft that I *know* I've removed
...
before. Also, make sure we write the predicate value for Cmp instructions
using instruction format 0.
llvm-svn: 32253
2006-12-06 04:27:07 +00:00
Chris Lattner
8fac1e29c7
counter should be unsigned.
...
llvm-svn: 32252
2006-12-06 01:50:04 +00:00
Chris Lattner
a7baddddcc
eliminate fp statistic
...
llvm-svn: 32251
2006-12-06 01:48:55 +00:00
Reid Spencer
2a2cc7fc14
Fix constant folding to deal with external weak global values.
...
llvm-svn: 32247
2006-12-06 00:25:09 +00:00
Reid Spencer
a5b4e1c136
Regenerate.
...
llvm-svn: 32246
2006-12-05 23:50:48 +00:00
Reid Spencer
15979b2dc3
Remove dead var NewVarArgs.
...
llvm-svn: 32245
2006-12-05 23:46:41 +00:00
Chris Lattner
a6cad8869f
Fix Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll, fixing an out-of-
...
stack-space issue in the ppc bootstrap.
llvm-svn: 32244
2006-12-05 23:43:59 +00:00
Reid Spencer
ecfe285ee4
Regenerate.
...
llvm-svn: 32242
2006-12-05 23:29:42 +00:00
Reid Spencer
cd773b0d10
Dump the old va_arg and va_next upgrade support. No need to keep track of
...
the current basic block any more either.
llvm-svn: 32241
2006-12-05 23:28:06 +00:00
Reid Spencer
980b8e4169
Finally get the casting right in this file. Also, remove some unnecessary
...
casting because sdiv doesn't require operand signs to match any more.
llvm-svn: 32240
2006-12-05 22:39:58 +00:00
Evan Cheng
40a5de9cd9
Revert an unintended change.
...
llvm-svn: 32239
2006-12-05 22:03:40 +00:00
Evan Cheng
adeea85f7d
- Switch X86-64 JIT to large code size model.
...
- Re-enable some codegen niceties for X86-64 static relocation model codegen.
- Clean ups, etc.
llvm-svn: 32238
2006-12-05 19:50:18 +00:00
Chris Lattner
1dc35111f1
straighten out various memory ownership issues in the callgraph stuff.
...
This fixes Regression/Other/2002-01-31-CallGraph.ll.
llvm-svn: 32237
2006-12-05 19:46:12 +00:00
Reid Spencer
f024dd475f
Regenerate.
...
llvm-svn: 32233
2006-12-05 19:16:11 +00:00
Reid Spencer
7b292216d6
Remove various old upgrade hacks that are no longer needed.
...
llvm-svn: 32232
2006-12-05 19:15:41 +00:00
Reid Spencer
c87c3e5a70
Bail on the getInferredCast idea. Remove the function and convert
...
remaining uses to more specific casts.
llvm-svn: 32231
2006-12-05 19:14:13 +00:00
Chris Lattner
6a9de21df5
If we have ScalarSSE, we can select bitconvert into single instructions.
...
This compiles bitcast.ll:test3/test4 into:
_test3:
movd %xmm0, %eax
ret
_test4:
movd %edi, %xmm0
ret
llvm-svn: 32230
2006-12-05 18:45:06 +00:00
Chris Lattner
0edf53eb71
Add a perf optzn corresponding to PR1033.
...
llvm-svn: 32229
2006-12-05 18:25:10 +00:00
Chris Lattner
4ad68ab4d7
Fix PR1033 and CodeGen/X86/bitcast.ll, by expanding bitcast to a load/store pair.
...
This could be better, readme entry pending.
llvm-svn: 32228
2006-12-05 18:22:22 +00:00
Rafael Espindola
5e8a6ca4c0
expand memmove and memcpy
...
llvm-svn: 32226
2006-12-05 17:57:23 +00:00
Reid Spencer
5bf28d5efe
Eliminate "control reaches end of non-void function" warnings.
...
llvm-svn: 32225
2006-12-05 17:53:26 +00:00
Rafael Espindola
38062acebb
add support for the "r" asm constraint
...
patch by Lauro Ramos Venancio
llvm-svn: 32224
2006-12-05 17:37:31 +00:00
Chris Lattner
7368984a3d
Fix typo noticed by Lauro Ramos Venancio, thanks!
...
llvm-svn: 32223
2006-12-05 17:29:40 +00:00
Rafael Espindola
da1fffc4e1
add support for weak linkage
...
llvm-svn: 32222
2006-12-05 17:00:17 +00:00
Evan Cheng
32c16b7d3a
JIT large code model support.
...
llvm-svn: 32220
2006-12-05 07:29:55 +00:00
Reid Spencer
28a5079f58
Can't make these fail now with just BitCast. Previous failures must have
...
been in conjunction with something else. By right, they should just be
BitCasts.
llvm-svn: 32219
2006-12-05 07:18:07 +00:00
Evan Cheng
2c48ef5aab
Asm printing bug.
...
llvm-svn: 32218
2006-12-05 06:43:58 +00:00
Evan Cheng
2c35691a02
- Fix X86-64 JIT by temporarily disabling code that treats GV address as 32-bit
...
immediate in small code model. The JIT cannot ensure GV's are placed in the
lower 4G.
- Some preliminary support for large code model.
llvm-svn: 32215
2006-12-05 04:01:03 +00:00
Evan Cheng
b16bf52453
Update
...
llvm-svn: 32214
2006-12-05 03:58:23 +00:00
Reid Spencer
679821dd29
Remove the last inferred casts from VMCore.
...
llvm-svn: 32213
2006-12-05 03:30:09 +00:00
Reid Spencer
4f42ccea23
Implement createPointerCast.
...
llvm-svn: 32212
2006-12-05 03:28:26 +00:00
Reid Spencer
c5727bf642
Implement getPointerCast.
...
llvm-svn: 32211
2006-12-05 03:25:26 +00:00
Chris Lattner
e0738f8f8b
add an instcombine xform. This speeds up 462.libquantum from 9.78s to
...
7.48s. This regression is due to unforseen consequences of the cast patch.
llvm-svn: 32209
2006-12-05 01:26:29 +00:00
Devang Patel
ae17721f63
SCCP does not handle Packed Type properly. Disable Packed Type handling
...
for now.
llvm-svn: 32208
2006-12-04 23:54:59 +00:00
Chris Lattner
0be88afd90
Add support for 64-bit 'r' constraint. Patch by by Rafael ~Avila de EspÃndol!
...
This fixes PR1029 and Regression/CodeGen/X86/x86-64-asm.ll
llvm-svn: 32206
2006-12-04 22:38:21 +00:00
Jim Laskey
1dcda902cd
Restoration of the stack pointer after a deallocation of a alloca was not
...
updating the SP link.
llvm-svn: 32202
2006-12-04 22:04:42 +00:00
Reid Spencer
10b94bb9f5
Separate getCompare from get and getCompareTy from getTy.
...
llvm-svn: 32200
2006-12-04 21:35:24 +00:00
Reid Spencer
9161e033cd
Fix comment grammaro
...
llvm-svn: 32198
2006-12-04 21:33:23 +00:00
Chris Lattner
1eaa3ef5b3
Add a comment and fix a memory leak. Thanks to Vikram for pointing this out.
...
llvm-svn: 32196
2006-12-04 21:22:45 +00:00
Reid Spencer
2d2a26767e
Implement new cast creation functions for both instructions and constant
...
expressions. These will get used to reduce clutter as we replace various
calls to createInferredCast and getCast.
llvm-svn: 32191
2006-12-04 20:17:56 +00:00
Reid Spencer
94096ebd7c
Reduce the size of the ExprMapKeyType class.
...
llvm-svn: 32186
2006-12-04 18:38:05 +00:00
Evan Cheng
11e73ffe93
Non-darwin gcc should default to static relocation to match gcc.
...
llvm-svn: 32184
2006-12-04 18:07:10 +00:00
Reid Spencer
e7de1b3255
Fix inferred casts.
...
llvm-svn: 32180
2006-12-04 17:05:42 +00:00
Reid Spencer
01a0443bdd
Fix 80 cols violation
...
llvm-svn: 32179
2006-12-04 17:04:44 +00:00
Reid Spencer
8921f36bbd
Regenerate.
...
llvm-svn: 32173
2006-12-04 05:24:24 +00:00
Reid Spencer
ccdc1ac3a7
For PR950: Implement read/write of ICmp and FCmp constant expressions
...
llvm-svn: 32172
2006-12-04 05:23:49 +00:00
Reid Spencer
807b56d92b
For PR950: For ICmp and FCmp constant expressions, put the predicate outiside the parentheses to match what llvm-upgrade generates.
...
llvm-svn: 32171
2006-12-04 05:20:06 +00:00
Reid Spencer
e6770851c0
For PR950: Fix constant expressions to properly support ICmp and FCmp type expressions.
...
llvm-svn: 32170
2006-12-04 05:19:50 +00:00
Reid Spencer
2580dd751f
For PR950: Implement a stub for folding ICmp and FCmp instructions
...
llvm-svn: 32169
2006-12-04 05:19:34 +00:00
Reid Spencer
ca27d66971
For PR950: Implement ICmp/FCmp predicate printing for constant expressions
...
llvm-svn: 32168
2006-12-04 05:19:18 +00:00
Reid Spencer
d727d239f8
Update call to CastInst::getCastOpcode for its new signature.
...
llvm-svn: 32166
2006-12-04 02:48:01 +00:00
Reid Spencer
0668975146
Change inferred casts to explicit casts.
...
llvm-svn: 32165
2006-12-04 02:46:44 +00:00
Reid Spencer
4cb4234c17
Take a baby step towards getting rid of inferred casts. Provide methods on
...
CastInst and ConstantExpr that allow the signedness to be explicitly passed
in and reliance on signedness removed from getCastOpcode. These are
temporary measures useful during the conversion of inferred casts.
llvm-svn: 32164
2006-12-04 02:43:42 +00:00
Reid Spencer
41583e85cb
Support ICmp/FCmp constant expression reading and writing.
...
llvm-svn: 32160
2006-12-03 17:17:02 +00:00
Reid Spencer
470e894f5c
Remove dead code.
...
llvm-svn: 32157
2006-12-03 16:21:33 +00:00
Reid Spencer
2d9ef9ff2d
Regenerate.
...
llvm-svn: 32156
2006-12-03 16:20:14 +00:00
Reid Spencer
178ca8ccb7
Remove useless #include.
...
llvm-svn: 32155
2006-12-03 16:19:43 +00:00
Reid Spencer
45af0be5e4
Regenerate.
...
llvm-svn: 32152
2006-12-03 06:59:29 +00:00
Reid Spencer
1f0ce9daae
Shorten the FCmp and ICmp mnemonics to 3 letters. Make the parser
...
disambiguate them.
llvm-svn: 32151
2006-12-03 06:58:07 +00:00
Reid Spencer
f78fe29ca8
Shorten the FCmp predicate mnemonics.
...
llvm-svn: 32150
2006-12-03 06:35:48 +00:00
Reid Spencer
7a449dd20b
Implement reading and writing of the ICmp and FCmp instructions.
...
llvm-svn: 32149
2006-12-03 06:28:54 +00:00
Reid Spencer
904e41f87e
Allow the ICmp and FCmp instructions to be written by the AsmWriter
...
llvm-svn: 32148
2006-12-03 06:27:29 +00:00
Reid Spencer
a468638458
Implement creation of ICmp and FCmp constant expressions.
...
llvm-svn: 32147
2006-12-03 05:48:19 +00:00
Reid Spencer
5f687b7190
Remove backwards compatibility goop. This is now handled by llvm-upgrade.
...
llvm-svn: 32146
2006-12-03 05:47:10 +00:00
Reid Spencer
c7ef78e5be
Regenerate.
...
llvm-svn: 32145
2006-12-03 05:46:11 +00:00
Reid Spencer
e7083039e5
Remove backwards compatibility goop. Now implemented in llvm-upgrade.
...
llvm-svn: 32144
2006-12-03 05:45:44 +00:00
Jeff Cohen
f99052befb
Unbreak VC++ build.
...
llvm-svn: 32113
2006-12-02 02:22:01 +00:00
Chris Lattner
1629b0d995
disable transformations that are invalid for fp vectors. This fixes
...
Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll
llvm-svn: 32112
2006-12-02 00:13:08 +00:00
Chris Lattner
7a39941897
Switch analysis groups to be unregistered when llvm_shutdown is called.
...
llvm-svn: 32110
2006-12-01 23:46:50 +00:00
Chris Lattner
1b0e89e022
Start moving pass registration over to using the ManagedStatic mechanism.
...
This fixes issues where passes get unregistered before llvm_shutdown is
called, and is generally cleaner and simpler. Analysis groups up next.
llvm-svn: 32108
2006-12-01 23:27:45 +00:00
Chris Lattner
a2bd5d4aaa
move 'cfgonly' pass tracking into PassInfo, instead of handling it with
...
yet-another global data structure.
llvm-svn: 32102
2006-12-01 22:21:11 +00:00
Evan Cheng
bf13611e84
Match TargetInstrInfo changes.
...
llvm-svn: 32098
2006-12-01 21:52:58 +00:00
Evan Cheng
5c7e78886c
convertToThreeAddress() is now responsible for updating live info as well as inserting the new MI's.
...
llvm-svn: 32097
2006-12-01 21:52:41 +00:00
Evan Cheng
c5ad9caeff
Add weak reference directive.
...
llvm-svn: 32091
2006-12-01 20:47:11 +00:00
Chris Lattner
64b24381a8
These should be rewritten to fold without using the 'Rules' mechanism, but
...
until this happens at least make sext from bool and sitofp from bool do the
right thing.
llvm-svn: 32087
2006-12-01 19:50:54 +00:00
Chris Lattner
7e0d6868fd
this logic is broken for trunc to bool, replace the folding logic for trunc
...
completely, as it is trivial. We should probably do this for the rest of the
cast operations. This fixes ConstProp/2006-12-01-TruncBoolBug.ll.
llvm-svn: 32081
2006-12-01 19:22:41 +00:00
Chris Lattner
497c976859
add a new ConstantIntegral::get method. Simplify the implementation of
...
ConstantInt::get
llvm-svn: 32080
2006-12-01 19:20:02 +00:00
Evan Cheng
1d611158eb
Copy and paste error. An initialized global cannot be a weak reference.
...
llvm-svn: 32075
2006-12-01 17:39:22 +00:00
Jim Laskey
8f43fbf759
1. In ppc64 mode we need only use one GPR.
...
2. Float values need to be promoted to double when they are vararg.
llvm-svn: 32074
2006-12-01 16:30:47 +00:00
Jim Laskey
a8db40105b
ExternalWeak case in wrong location.
...
llvm-svn: 32073
2006-12-01 14:37:39 +00:00
Evan Cheng
04e66b07dc
Fix 2005-05-08-FPStackifierPHI.ll failure.
...
llvm-svn: 32071
2006-12-01 10:11:51 +00:00
Evan Cheng
3cc87db480
A initialized global variable cannot be extern weak. However, if a global value's initializer is itself a external weak symbol, emit the weak reference.
...
llvm-svn: 32069
2006-12-01 09:13:26 +00:00
Evan Cheng
6f5f81722b
Darwin PPC external weak linkage support.
...
llvm-svn: 32068
2006-12-01 07:56:37 +00:00
Evan Cheng
d326e5b35e
Minor code clean up.
...
llvm-svn: 32067
2006-12-01 07:38:23 +00:00
Evan Cheng
5b43e8613e
Fix indentation.
...
llvm-svn: 32066
2006-12-01 07:17:00 +00:00
Evan Cheng
1dfe5221c1
Darwin X86 external weak linkage support.
...
llvm-svn: 32065
2006-12-01 07:15:24 +00:00
Chris Lattner
c65612e859
Fix a typo introduced by the cast patch that horribly broke a lot of vector
...
code. Testcase here: Transforms/ConstProp/2006-11-30-vector-cast.ll
llvm-svn: 32062
2006-12-01 05:55:25 +00:00
Reid Spencer
a1613b631b
Don't fold "ptrtoint GV to bool" since this should be doing a truncate not
...
a comparison against zero. Instead fold setne(GV,null) and seteq(GV,null)
to ConstantBool::True or ConstantBool::False, respectively.
llvm-svn: 32060
2006-12-01 03:56:30 +00:00
Chris Lattner
860908f98c
Fix the CodeGen/PowerPC/vec_constants.ll regression.
...
llvm-svn: 32057
2006-12-01 01:45:39 +00:00
Reid Spencer
f13a49f6aa
Regenerate.
...
llvm-svn: 32053
2006-12-01 00:33:46 +00:00
Anton Korobeynikov
f627d28d9c
Introducing external weak linkage. Darwin codegen should be added later.
...
llvm-svn: 32052
2006-12-01 00:25:12 +00:00
Reid Spencer
529fb41272
Remove 4 FIXMEs to hack around cast-to-bool problems which no longer exist.
...
llvm-svn: 32051
2006-11-30 23:13:36 +00:00
Anton Korobeynikov
25535e6c64
Factor out GVRequiresExtraLoad() from .h to .cpp
...
llvm-svn: 32048
2006-11-30 22:42:55 +00:00
Evan Cheng
456101ebb9
- Use a different wrapper node for RIP-relative GV, etc.
...
- Proper support for both small static and PIC modes under X86-64
- Some (non-optimal) support for medium modes.
llvm-svn: 32046
2006-11-30 21:55:46 +00:00
Jim Laskey
32137fffa5
better check for version
...
llvm-svn: 32045
2006-11-30 18:29:23 +00:00
Chris Lattner
f3806f1c16
make it clear that this is always a zext
...
llvm-svn: 32044
2006-11-30 17:35:08 +00:00
Chris Lattner
affa9441cd
One more bugfix, 3 cases of making casts explicit.
...
llvm-svn: 32043
2006-11-30 17:32:29 +00:00
Chris Lattner
0b4753a96c
Fix a bug in globalopt due to the recent cast patch.
...
llvm-svn: 32042
2006-11-30 17:26:08 +00:00
Jim Laskey
0369cab61e
Change global descriptor names to provide name, full name and linkage name.
...
llvm-svn: 32036
2006-11-30 14:35:45 +00:00
Jim Laskey
831e2376f2
Temp fix to deal gdb issue.
...
llvm-svn: 32035
2006-11-30 11:09:42 +00:00
Evan Cheng
d8be97599a
MachineInstr::setOpcode -> MachineInstr::setInstrDescriptor
...
llvm-svn: 32034
2006-11-30 07:12:03 +00:00
Evan Cheng
08e6984667
Remove the ugly SPARCV9 TargetInstrDescriptors hack.
...
llvm-svn: 32033
2006-11-30 07:10:43 +00:00
Evan Cheng
cb65ba1821
- MachineInstr now keeps a ptr to TargetInstrDescriptor instead of Opcode.
...
- Remove the ugly TargetInstrDescriptors hack.
llvm-svn: 32032
2006-11-30 07:08:44 +00:00
Evan Cheng
f64e341522
In PIC mode, GV not requiring an extra load can be used as address immediate.
...
llvm-svn: 32028
2006-11-29 23:48:14 +00:00
Evan Cheng
1e3f41acde
Clean up.
...
llvm-svn: 32027
2006-11-29 23:46:27 +00:00
Evan Cheng
7e20347607
Fix for PR1018 - Better support for X86-64 Linux in small code model.
...
llvm-svn: 32026
2006-11-29 23:19:46 +00:00
Chris Lattner
3219b522c8
Fix bug codegen'ing FP constant vectors with integer splats. Make sure the
...
created intrinsics have the right integer types. This fixes
PowerPC/2006-11-29-AltivecFPSplat.ll
llvm-svn: 32024
2006-11-29 19:58:49 +00:00
Evan Cheng
c9710a3e29
Avoid inifinite looping if READCYCLECOUNTER isn't custom lowered.
...
llvm-svn: 32022
2006-11-29 19:13:47 +00:00
Jim Laskey
d7db5b4a9c
Eliminate unnecessary scopes.
...
llvm-svn: 32020
2006-11-29 16:55:57 +00:00
Jim Laskey
00bcb51943
Offset for load of 32-bit arg in 64-bit world was incorrect.
...
llvm-svn: 32019
2006-11-29 13:37:09 +00:00
Evan Cheng
f968824cdb
Custom lower READCYCLECOUNTER for x86-64.
...
llvm-svn: 32017
2006-11-29 08:28:13 +00:00
Evan Cheng
2acb6345d8
Allow target to custom lower READCYCLECOUNTER (when it doesn't have to be expanded).
...
llvm-svn: 32016
2006-11-29 08:26:18 +00:00
Chris Lattner
e72dff706e
done
...
llvm-svn: 32013
2006-11-29 07:21:46 +00:00
Chris Lattner
2fd5719f50
implement cast.ll:test35. With this, we recognize:
...
unsigned short swp(unsigned short a) {
return ((a & 0xff00) >> 8 | (a & 0x00ff) << 8);
}
as an idiom for bswap.
llvm-svn: 32011
2006-11-29 07:18:39 +00:00
Chris Lattner
03fdea2e74
Teach instcombine to turn trunc(srl x, c) -> srl (trunc(x), c) when safe.
...
This implements InstCombine/cast.ll:test34. It fires hundreds of times on
176.gcc.
llvm-svn: 32009
2006-11-29 07:04:07 +00:00
Chris Lattner
0409f2c48d
Implement Regression/Transforms/InstCombine/bswap-fold.ll,
...
folding seteq (bswap(x)), c -> seteq(x,bswap(c))
llvm-svn: 32006
2006-11-29 05:02:16 +00:00
Evan Cheng
52f30d0ff2
16-byte stack alignment for X86-64 ELF. Patch by Dan Gohman.
...
llvm-svn: 32004
2006-11-29 02:00:40 +00:00
Evan Cheng
0be56fab68
Fix for PR1023 by Dan Gohman.
...
llvm-svn: 32003
2006-11-29 01:58:12 +00:00
Chris Lattner
4e07e4aa24
Upgrade the ugly darwin 64-bit bswap idiom (bswap %eax / bswap %edx /
...
xchgl %eax, %edx) to llvm.bswap.i64. This compiles:
long long test2(long long A) {
return _OSSwapInt64(A);
}
to:
_test2:
movl 8(%esp), %eax
movl 4(%esp), %edx
bswapl %eax
bswapl %edx
ret
instead of:
_test2:
movl 8(%esp), %edx
movl 4(%esp), %eax
bswap %eax
bswap %edx
xchgl %eax, %edx
ret
GCC manages (with -fomit-frame-pointer) the uglier:
_test2:
subl $4, %esp
movl 8(%esp), %eax
movl 12(%esp), %edx
bswap %eax
bswap %edx
xchgl %eax, %edx
addl $4, %esp
ret
llvm-svn: 32001
2006-11-29 01:48:01 +00:00
Evan Cheng
f38588a1cd
Fix for PR1022 (folding loads of static initializers) by Dan Gohman.
...
llvm-svn: 32000
2006-11-29 01:38:07 +00:00
Chris Lattner
50d2db3b77
Trivially lower 'bswap $0' into llvm.bswap. This fixes hexxagon with the
...
JIT on darwin/x86, which has htonl implemented as inline asm.
llvm-svn: 31999
2006-11-29 01:14:06 +00:00
Bill Wendling
a5c00d4c4f
WTF? These weird newlines got in there...
...
llvm-svn: 31998
2006-11-29 01:14:00 +00:00
Chris Lattner
d00734a230
add a hook to allow targets to hack on inline asms to lower them to llvm
...
when they want to.
llvm-svn: 31997
2006-11-29 01:12:32 +00:00
Reid Spencer
a866877d2f
Join a split line.
...
llvm-svn: 31996
2006-11-29 01:11:01 +00:00
Bill Wendling
a29e6c5ec9
Converted to using llvm streams instead of <iostream>s
...
llvm-svn: 31992
2006-11-29 00:39:47 +00:00
Bill Wendling
4effa38086
Replacing std::iostreams with llvm iostreams. Some of these changes involve
...
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.
llvm-svn: 31990
2006-11-29 00:19:40 +00:00
Bill Wendling
2477c0ac3d
Convert to using llvm streams instead of iostreams.
...
llvm-svn: 31989
2006-11-28 23:33:06 +00:00
Andrew Lenharth
e46a408fb9
gcc doesn't like an empty colbber list
...
llvm-svn: 31987
2006-11-28 23:07:32 +00:00
Bill Wendling
c942df4921
Use ostream instead of iostream
...
llvm-svn: 31986
2006-11-28 22:49:32 +00:00
Bill Wendling
d8c0883f20
Use llvm streams instead of <iostream>
...
llvm-svn: 31985
2006-11-28 22:48:48 +00:00
Bill Wendling
35041c7c45
Removed #include <iostream> and used llvm streams
...
llvm-svn: 31984
2006-11-28 22:47:12 +00:00
Bill Wendling
040a60d22d
Removed some of the iostream #includes. Moved towards converting to using
...
llvm streams
llvm-svn: 31983
2006-11-28 22:46:12 +00:00
Chris Lattner
339c732e0b
Add a helper function
...
llvm-svn: 31981
2006-11-28 22:32:35 +00:00
Andrew Lenharth
aee28a6544
Identities are default now
...
llvm-svn: 31980
2006-11-28 22:28:08 +00:00
Andrew Lenharth
a32f3e30b3
Make identity default, and fix PR1020
...
llvm-svn: 31979
2006-11-28 22:25:32 +00:00
Reid Spencer
c48fe0fd4d
Undo the last patch until 253.perlbmk passes with these changes.
...
llvm-svn: 31977
2006-11-28 20:23:51 +00:00
Evan Cheng
27408161df
New entries.
...
llvm-svn: 31976
2006-11-28 19:59:25 +00:00
Andrew Lenharth
7669b3acc5
update comments
...
llvm-svn: 31975
2006-11-28 19:56:02 +00:00
Andrew Lenharth
d93af28924
Get the asminfo for the target most closely matching the module and use that for inline asm
...
llvm-svn: 31974
2006-11-28 19:53:36 +00:00
Andrew Lenharth
c0ee1250ad
X86 asm -> gcc asm translation table (incomplete)
...
llvm-svn: 31973
2006-11-28 19:52:49 +00:00
Andrew Lenharth
c51f451af5
Add per-target support for asm translation in the cbe
...
llvm-svn: 31972
2006-11-28 19:52:20 +00:00
Jim Laskey
7b0a74da3c
Remove debug code.
...
llvm-svn: 31970
2006-11-28 18:27:02 +00:00
Jim Laskey
737f53b6aa
Prime text sections to improve branch locality in large object files.
...
llvm-svn: 31969
2006-11-28 18:21:52 +00:00
Jim Laskey
a5c5ceb212
32-bit int space was not accounted for properly in lowerCall.
...
llvm-svn: 31966
2006-11-28 14:53:52 +00:00
Reid Spencer
2e6a2775db
Regenerate.
...
llvm-svn: 31965
2006-11-28 07:29:44 +00:00
Reid Spencer
05a440d447
Implement signedness caching for values, value lists, constants and
...
constant lists. This is just an internal change to the parser in
preparation for some backwards compatibility code that is to follow.
This will allow things like "uint 4000000000" to retain the unsignedness
of the integer constant as the value moves through the parser. In the
future, all integer types will be signless but parsing "uint" and friends
will be retained for backwards compatibility.
llvm-svn: 31964
2006-11-28 07:28:14 +00:00
Reid Spencer
8587322e79
Remove 4 FIXME's from the CAST patch now that the back end is correctly
...
producing code for "trunc to bool". This passes all tests on Linux.
llvm-svn: 31963
2006-11-28 07:23:01 +00:00
Bill Wendling
a80e3dc0c0
Put the #include for a module first.
...
llvm-svn: 31958
2006-11-28 03:31:29 +00:00
Evan Cheng
e176869ec0
Clean up.
...
llvm-svn: 31957
2006-11-28 02:25:34 +00:00
Bill Wendling
aa02717a76
Changed to using LLVM streams.
...
llvm-svn: 31955
2006-11-28 02:09:03 +00:00
Bill Wendling
7e9cea955c
Changed to using llvm streams.
...
llvm-svn: 31954
2006-11-28 02:08:17 +00:00