Devang Patel
cbbf291f34
Keep track of analysis information inherited from Module pass manager.
...
llvm-svn: 48576
2008-03-20 01:09:53 +00:00
Scott Michel
bbaf3edace
Add more patterns to match in the integer comparison test harnesses.
...
Fix bugs encountered, mostly due to range matching for immediates;
the CellSPU's 10-bit immediates are sign extended, covering a
larger range of unsigned values.
llvm-svn: 48575
2008-03-20 00:51:36 +00:00
Evan Cheng
5daf090a1a
80 col violation.
...
llvm-svn: 48573
2008-03-20 00:20:23 +00:00
Evan Cheng
bbba76fc99
Add intrinsics to match mmx shift builtin's with immediate operand.
...
llvm-svn: 48569
2008-03-19 23:38:52 +00:00
Devang Patel
b727960f78
Add comment.
...
llvm-svn: 48567
2008-03-19 23:05:52 +00:00
Andrew Lenharth
0d537491e7
style and spelling
...
llvm-svn: 48562
2008-03-19 22:32:43 +00:00
Devang Patel
fbf53a4d1d
#if 1 .. #endif markers do not add any value.
...
llvm-svn: 48560
2008-03-19 22:24:25 +00:00
Evan Cheng
a90fdc4340
Remove dead options.
...
llvm-svn: 48556
2008-03-19 22:02:26 +00:00
Devang Patel
718da668ab
PassInfo keep tracks whether a pass is an analysis pass or not.
...
llvm-svn: 48554
2008-03-19 21:56:59 +00:00
Dan Gohman
b9056838d2
Add support for multiple return values for the PPC target by
...
converting call result lowering to use the CallingConvLowering
infastructure.
llvm-svn: 48552
2008-03-19 21:39:28 +00:00
Andrew Lenharth
4d93dc17b2
llvm-ld deserves disable-verify too. opt shouldn't have all the fun options.
...
llvm-svn: 48550
2008-03-19 20:49:51 +00:00
Arnold Schwaighofer
7da2bceb3b
Don't loose incoming argument registers. Fix documentation style.
...
llvm-svn: 48545
2008-03-19 16:39:45 +00:00
Duncan Sands
9a4a089f07
Fix comment.
...
llvm-svn: 48543
2008-03-19 10:59:59 +00:00
Christopher Lamb
8fe9109469
Fix X86's isTruncateFree to not claim that truncate to i1 is free. This fixes Bill's testcase that failed for r48491.
...
llvm-svn: 48542
2008-03-19 08:30:06 +00:00
Tanya Lattner
ab7872c06c
Upgrade tests.
...
llvm-svn: 48538
2008-03-19 07:28:33 +00:00
Tanya Lattner
f9d25185d5
Upgrade tests.
...
llvm-svn: 48536
2008-03-19 05:39:35 +00:00
Chris Lattner
f5ec84c4f3
add some convenience methods for creating GEP instructions and
...
struct types. Patch by David Chisnall, with some tweaks.
llvm-svn: 48531
2008-03-19 05:06:05 +00:00
Tanya Lattner
0ea4c8d706
Upgrade tests to not use llvm-upgrade.
...
llvm-svn: 48530
2008-03-19 04:36:04 +00:00
Tanya Lattner
1d526b90aa
Upgrade tests to not use llvm-upgrade.
...
llvm-svn: 48529
2008-03-19 04:14:49 +00:00
Gordon Henriksen
054817ce06
C bindings for Module-, Function-, and BasicBlock::iterator.
...
llvm-svn: 48528
2008-03-19 03:47:18 +00:00
Tanya Lattner
f73582b17c
Remove llvm-upgrade and update tests.
...
llvm-svn: 48527
2008-03-19 03:47:13 +00:00
Evan Cheng
56e9e57d28
Fixed a coalescer bug caused by a typo.
...
llvm-svn: 48526
2008-03-19 02:26:36 +00:00
Gordon Henriksen
265f780c22
C and Objective Caml bindings for the various getParent methods of the IR.
...
Based on Erick Tryzelaar's patch.
llvm-svn: 48523
2008-03-19 01:11:35 +00:00
Evan Cheng
44c0b4f754
Fix live variables issues:
...
1. If part of a register is re-defined, an implicit kill and an implicit def are added to denote read / mod / write. However, this should only be necessary if the register is actually read later. This is a performance issue.
2. If a sub-register is being defined, and it doesn't have a previous use, do not add a implicit kill to the last use of a super-register:
= EAX, AX<imp-use,kill>
...
AX =
In this case, EAX is live but AX is killed, this is wrong and will cause the coalescer to do bad things.
llvm-svn: 48521
2008-03-19 00:52:20 +00:00
Devang Patel
af75ab8130
Do not use virtual function to identify an analysis pass.
...
llvm-svn: 48520
2008-03-19 00:48:41 +00:00
Bill Wendling
2f6ab65d77
On Darwin, GCC issues a ".globl" for something that has a "visibility protected"
...
attribute instead of ".protected".
llvm-svn: 48516
2008-03-18 23:38:12 +00:00
Evan Cheng
484064370a
Fix a x86-64 isel lowering bug that's been around forever. A x86-64 varargs function implicitly reads X86::AL, don't clobber it!
...
llvm-svn: 48515
2008-03-18 23:36:35 +00:00
Scott Michel
4799ea70ea
Note that gcc 4.0.1 will trip internal LLVM asserts (e.g., pred_iterator) if compiling
...
for Release with optimization levels greater than -O0.
llvm-svn: 48513
2008-03-18 23:13:26 +00:00
Bill Wendling
43784cc27d
It might be nice to have this run as x86 on non-x86 platforms...
...
llvm-svn: 48511
2008-03-18 22:38:22 +00:00
Bill Wendling
efb4d9ef80
Temporarily revert r48491. It's breaking test/CodeGen/X86/xorl.ll.
...
llvm-svn: 48510
2008-03-18 22:29:51 +00:00
Daniel Berlin
5fef9aea12
Fix PR 2160 by making sure arguments to external functions get marked as pointing to anything
...
llvm-svn: 48509
2008-03-18 22:22:53 +00:00
Tanya Lattner
a043a9b0f0
Do not pass -g flag when compiling tests, so remove the C.Flags. This only happens if you have a debug build of llvm.
...
llvm-svn: 48498
2008-03-18 19:59:04 +00:00
Dale Johannesen
12c76db312
Make conversions of i8/i16 to ppcf128 work.
...
llvm-svn: 48493
2008-03-18 17:28:38 +00:00
Scott Michel
08ef1b2bdb
Dial down gcc's warnings: don't use 0UL when 0U suffices (and when the
...
variables and methods themselves only use unsigned.)
llvm-svn: 48492
2008-03-18 16:55:06 +00:00
Christopher Lamb
3e408d4d82
Target independent DAG transform to use truncate for field extraction + sign extend on targets where this is profitable. Passes nightly on x86-64.
...
llvm-svn: 48491
2008-03-18 16:46:39 +00:00
Evan Cheng
d096ec0a86
Rewrite code that propagate isDead information after a dead copy is coalesced. This remove some ugly spaghetti code and fixed a number of subtle bugs.
...
llvm-svn: 48490
2008-03-18 08:26:47 +00:00
Tanya Lattner
4e59897d3d
Upgrade tests to not use llvm-upgrade.
...
llvm-svn: 48484
2008-03-18 04:14:37 +00:00
Tanya Lattner
baa370b37a
Upgrade tests to not use llvm-upgrade.
...
llvm-svn: 48483
2008-03-18 03:45:45 +00:00
Dale Johannesen
69683fa5ee
Get rid of compilation warnings. Per Devang.
...
llvm-svn: 48478
2008-03-18 01:52:17 +00:00
Devang Patel
864970e9b6
Identify Analysis pass.
...
Do not run analysis pass again if analysis info is still available.
This fixes PR1441.
llvm-svn: 48476
2008-03-18 00:39:19 +00:00
Devang Patel
924ca7f01d
Update heuritics that estimates cost of call instructions.
...
llvm-svn: 48474
2008-03-17 23:41:20 +00:00
Dale Johannesen
cf87e71053
Make Complex long long/double/long double work
...
in ppc64 mode.
llvm-svn: 48459
2008-03-17 17:11:08 +00:00
Duncan Sands
c572c1e487
Clarify the unwind attribute. Add assumption
...
about sret made by the optimizers.
llvm-svn: 48452
2008-03-17 12:17:41 +00:00
Bill Wendling
0d3970c839
Fix for "make install" of ocaml docs. Patch by Erick Tryzelaar!
...
llvm-svn: 48451
2008-03-17 07:49:23 +00:00
Nate Begeman
fbbe80b597
Add support for escaping {} in asm strings, based on patch from Nick Burns.
...
llvm-svn: 48450
2008-03-17 07:26:14 +00:00
Chris Lattner
7d4152bda6
Check in some #ifdef'd out code switching call argument
...
lowering over to SparcCallingConv.td. We can't make the switch
yet because we can't say to pass f64 registers in 2 x i32 registers
with the td file yet.
llvm-svn: 48449
2008-03-17 06:58:37 +00:00
Chris Lattner
52f16deb65
minor cleanups
...
llvm-svn: 48448
2008-03-17 06:57:02 +00:00
Evan Cheng
24bc123e80
Unbreak JIT. Ignore TargetInstrInfo::IMPLICIT_DEF.
...
llvm-svn: 48447
2008-03-17 06:56:52 +00:00
Owen Anderson
488e645938
A first attempt at updating live intervals, with code lifted from
...
the coalescer. This doesn't really work, but gets us farther than
before.
llvm-svn: 48446
2008-03-17 06:08:26 +00:00
Chris Lattner
4eabbb8f11
remove dead code
...
llvm-svn: 48445
2008-03-17 06:04:10 +00:00
Chris Lattner
db26db2158
Switch sparc from using LowerCallTo to using LowerOperation(CALL) like
...
other targets. Use autogenerated calling conv to lower result of
calls.
llvm-svn: 48444
2008-03-17 06:01:07 +00:00
Chris Lattner
49b269d780
Start moving sparc to use SparcCallingConv.td, switching over
...
return lowering first. This fixes a bug where the top and bottom
of i64 values were returned in the wrong registers before.
llvm-svn: 48443
2008-03-17 05:41:48 +00:00
Chris Lattner
0a1762e374
split sparc lowering out into SparcISelLowering.{cpp|h} to follow
...
best practices.
llvm-svn: 48442
2008-03-17 03:21:36 +00:00
Chris Lattner
5c5597a572
refactor the LowerOperation code out to individual functions for
...
each lowering, which is 'best practice'.
llvm-svn: 48441
2008-03-17 02:52:07 +00:00
Dale Johannesen
92dcf1e0c2
Next round of PPC32 ABI changes. Allow for gcc
...
behavior where a callee thinks a param will be
present in memory, even though the ABI doc says
it doesn't have to be. Handle complex long long
and complex double (4 and 8 return regs).
llvm-svn: 48439
2008-03-17 02:13:43 +00:00
Chris Lattner
af8d3c6699
various rotate fun.
...
llvm-svn: 48438
2008-03-17 01:47:51 +00:00
Chris Lattner
3b79fdcae5
ensure we continue matching x86-64 rotates.
...
llvm-svn: 48437
2008-03-17 01:35:03 +00:00
Nate Begeman
39afeaf834
__builtin_ia32_movntdqa reads memory
...
llvm-svn: 48431
2008-03-16 21:15:47 +00:00
Nate Begeman
9030ecec88
Add a couple missing SSE4 instructions
...
llvm-svn: 48430
2008-03-16 21:14:46 +00:00
Gordon Henriksen
ab4b7d36cd
C and Objective Caml bindings for the TargetData class.
...
llvm-svn: 48422
2008-03-16 20:08:03 +00:00
Bill Wendling
9a11a0174f
Add assert for non-hexadecimal radixes.
...
llvm-svn: 48421
2008-03-16 20:05:52 +00:00
Gordon Henriksen
d0cc8dbd4d
Housekeeping.
...
llvm-svn: 48420
2008-03-16 16:33:35 +00:00
Gordon Henriksen
82a0e74f43
C and Objective Caml bindings for several scalar transforms.
...
Patch originally by Erick Tryzelaar, but has been modified somewhat.
llvm-svn: 48419
2008-03-16 16:32:40 +00:00
Gordon Henriksen
9657149875
Remove unnecessary includes.
...
llvm-svn: 48418
2008-03-16 15:55:43 +00:00
Nick Lewycky
ec6f1669d3
All of these tests had out of date syntax and were never even running through
...
llvm-upgrade because nobody noticed them failing.
Update to use new syntax and actually check for the right failure by looking at
the error message.
llvm-svn: 48417
2008-03-16 07:55:46 +00:00
Nick Lewycky
942035d8b3
Functions are allowed to return structures. (Note that this test never failed.)
...
llvm-svn: 48416
2008-03-16 07:49:49 +00:00
Nick Lewycky
227c7a290b
Regressions/ is long gone.
...
llvm-svn: 48415
2008-03-16 07:31:23 +00:00
Nick Lewycky
084ab471fe
Commit works on regular functions too. Fix the syntax to allow @foo.
...
llvm-svn: 48414
2008-03-16 07:18:12 +00:00
Gordon Henriksen
878114bf16
C and Objective Caml bindings for PassManagers.
...
llvm-svn: 48413
2008-03-16 04:20:44 +00:00
Christopher Lamb
d3d0ad3f58
Make insert_subreg a two-address instruction, vastly simplifying LowerSubregs pass. Add a new TII, subreg_to_reg, which is like insert_subreg except that it takes an immediate implicit value to insert into rather than a register.
...
llvm-svn: 48412
2008-03-16 03:12:01 +00:00
Gordon Henriksen
c1338d430a
Minor documentation fix.
...
Patch by Erick Tryzelaar.
llvm-svn: 48382
2008-03-15 00:26:23 +00:00
Evan Cheng
ec7533b620
Remove isImplicitDef TargetInstrDesc flag.
...
llvm-svn: 48381
2008-03-15 00:19:36 +00:00
Evan Cheng
0e7b00d79f
Replace all target specific implicit def instructions with a target independent one: TargetInstrInfo::IMPLICIT_DEF.
...
llvm-svn: 48380
2008-03-15 00:03:38 +00:00
Gordon Henriksen
6c6075e326
Expose Module::dump via C and Ocaml.
...
Patch by Erick Tryzelaar.
llvm-svn: 48379
2008-03-14 23:58:56 +00:00
Gordon Henriksen
c63aaeadd2
Expose Module::dump via C and Ocaml.
...
Patch by Erick Tryzelaar.
llvm-svn: 48378
2008-03-14 23:52:53 +00:00
Gabor Greif
0269b82fd9
move the Use destructor where it belongs to
...
llvm-svn: 48376
2008-03-14 22:03:02 +00:00
Evan Cheng
31715f1a83
Back out r48353. Not needed.
...
llvm-svn: 48375
2008-03-14 22:01:01 +00:00
Duncan Sands
858e6385f7
Do not generate special entries in the dwarf eh
...
table for nounwind calls.
llvm-svn: 48373
2008-03-14 21:36:24 +00:00
Chris Lattner
2daab52500
Restore this member, which is used on win32.
...
llvm-svn: 48372
2008-03-14 21:17:54 +00:00
Evan Cheng
84aec09fdb
Fix PR2138. Apparently any modification to a std::multimap (including remove entries for a different key) can invalidate multimap iterators.
...
llvm-svn: 48371
2008-03-14 20:44:01 +00:00
Chris Lattner
bb8c2406dc
this was removed from the Unix side.
...
llvm-svn: 48370
2008-03-14 20:41:50 +00:00
Dan Gohman
94f57c56f9
Update comments; getPassName no longer uses RTTI.
...
llvm-svn: 48369
2008-03-14 18:27:04 +00:00
Dan Gohman
87ea2aba62
Move the PMStack class out of Pass.h and into PassManagers.h.
...
llvm-svn: 48367
2008-03-14 18:14:29 +00:00
Dale Johannesen
0dfd3f33f7
Implement the real calling convention for ppc32 Altivec:
...
vectors go at the end of the memory area, after all
non-vector parameters.
llvm-svn: 48364
2008-03-14 17:41:26 +00:00
Evan Cheng
5be52a6053
Fix some 80 col violations.
...
llvm-svn: 48361
2008-03-14 07:46:48 +00:00
Evan Cheng
96bdbd6c5d
Fix a number of encoding bugs. SSE 4.1 instructions MPSADBWrri, PINSRDrr, etc. have 8-bits immediate field (ImmT == Imm8).
...
llvm-svn: 48360
2008-03-14 07:39:27 +00:00
Evan Cheng
77c8da7f00
Add debugging stuff.
...
llvm-svn: 48359
2008-03-14 07:13:42 +00:00
Chris Lattner
477d0f5294
Add an issue that is preventing instcombine from doing a simplification.
...
llvm-svn: 48356
2008-03-14 06:00:19 +00:00
Duncan Sands
a06e4f3050
Simplify using getIntPtrConstant.
...
llvm-svn: 48355
2008-03-14 05:23:57 +00:00
Bill Wendling
68a930b33e
The inst combining of inttoptr into GEP with one index was using the bit size of
...
the type instead of the byte size. This was causing troublesome mis-compilations.
True to form, this took 2 days to find and is a one-line fix. :-P
llvm-svn: 48354
2008-03-14 05:12:19 +00:00
Evan Cheng
3108798ecb
Add an MO_Undef MachineOperandType, intended for INSERT_SUBREG. Next up MO_Undead.
...
llvm-svn: 48353
2008-03-14 01:47:49 +00:00
Nate Begeman
63eb03f800
Tabs -> spaces
...
Use getIntPtrConstant in a couple places to shorten stuff up
Handle splitting vector shuffles with undefs in the mask
llvm-svn: 48351
2008-03-14 00:53:31 +00:00
Evan Cheng
05d41356d0
Forgot this.
...
llvm-svn: 48349
2008-03-14 00:17:29 +00:00
Evan Cheng
db443ca377
Livein copy scheduling fixes: do not coalesce physical register copies, correctly determine the safe location to insert the copies.
...
llvm-svn: 48348
2008-03-14 00:14:55 +00:00
Dan Gohman
eac0c96371
Use SDTNone instead of duplicating it.
...
llvm-svn: 48346
2008-03-13 23:07:40 +00:00
Dan Gohman
7350880641
Fix a typo in a comment.
...
llvm-svn: 48345
2008-03-13 23:04:27 +00:00
Dan Gohman
b72127ac4c
More APInt-ification.
...
llvm-svn: 48344
2008-03-13 22:13:53 +00:00
Owen Anderson
7a69e3aef3
Fix a bug in GVN that Duncan noticed, where we potentially need to insert a
...
pointer bitcast when performing return slot optimization.
llvm-svn: 48343
2008-03-13 22:07:10 +00:00
Tanya Lattner
c21cfe37ec
Fix error in testing for END. notation.
...
Patch by Julien Lerouge. Thanks!
llvm-svn: 48342
2008-03-13 22:02:51 +00:00
Evan Cheng
e21a68bca7
Undo tweak. It had no obvious benefit.
...
llvm-svn: 48341
2008-03-13 17:42:48 +00:00