Chris Lattner
59850a8f8f
Do not dereference end iterators. It hurts when you do that.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14474 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-29 06:56:51 +00:00
Chris Lattner
8b486a114e
Fix a regression from r1.224. In particular, codegen a cast from double ->
...
float as a truncation by going through memory. This truncation was being
skipped, which caused 175.vpr to fail after aggressive register promotion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14473 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-29 00:14:38 +00:00
Misha Brukman
7cd444082e
Can't print out machine code before it is constructed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14472 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 21:16:57 +00:00
Chris Lattner
100a4f88ec
document new pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14471 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 19:19:47 +00:00
Misha Brukman
3905b57442
Fix the assembly opcode on LOADLoAddr, courtesy of Nate Begeman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14470 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 18:27:08 +00:00
Misha Brukman
b2edb443e0
Set isBranch and isTerminator bits on all branch instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14469 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 18:23:35 +00:00
Misha Brukman
7e5812cd17
Fix loading and storing PC-relative static variables, courtesy of Nate Begeman.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14468 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 18:20:59 +00:00
Misha Brukman
a6e58b3cfb
No need to generate a lazy-linking stub for internal functions, they can be
...
resolved by the static linker.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14467 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 18:03:37 +00:00
Misha Brukman
9c661c8e26
Do not set the `link' bit when branching to the first BB of a function, as it
...
will cause an infinite loop. The link bit is only used for calling functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14466 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 17:57:40 +00:00
Chris Lattner
604fdc10bb
Add a link to the CFE build instrs next to the CFE download instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14465 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 17:14:01 +00:00
Chris Lattner
d80ea073dd
Building the C FE is a user-level process
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14464 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 17:11:10 +00:00
Misha Brukman
bb4a90820c
Fix spacing around function arguments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14463 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 15:53:27 +00:00
Chris Lattner
3b04a8ac45
Initial checkin of a simple mod/ref analysis for global variables. This is
...
still overly conservative and uses very simple data structures, but it is a
start, and allows elimination of a lot of loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14462 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 06:33:13 +00:00
Chris Lattner
15fde2eb83
Add new header
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14461 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 06:31:26 +00:00
Chris Lattner
fdd9f1facc
Remove unused file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14460 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:46:58 +00:00
Chris Lattner
c347dfb767
Remove dead file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14459 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:46:54 +00:00
Chris Lattner
cbabe70371
Bad passes are gone
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14458 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:44:45 +00:00
Chris Lattner
65f437ce7b
These passes are long dead/obsolete. They never worked in the first place
...
and are a maintenence burden. Nuke nuke nuke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14457 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:44:18 +00:00
Chris Lattner
c755307412
Remove two dead passes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14456 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:43:25 +00:00
Chris Lattner
e6afb74188
Moved IPModRef out of the public include dir
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14455 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:41:23 +00:00
Chris Lattner
c3f44c082f
Move file to lib/Analysis/DataStructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14454 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:40:43 +00:00
Chris Lattner
b88fb055c4
Move DependenceGraph.* to lib/Analysis/DataStructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14452 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:32:33 +00:00
Chris Lattner
1ffa817210
Moved to lib/analysis/datastructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14451 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:30:29 +00:00
Chris Lattner
2de1d32ce1
Moving to lib/Analysis/DataStructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14450 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:29:42 +00:00
Chris Lattner
ae7502cb5f
Moved to lib/Analysis/DataStructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14449 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:27:34 +00:00
Chris Lattner
0ecdcbe63a
Move MemoryDepAnalysis.h into lib/Analysis/DataStructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14448 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:27:16 +00:00
Chris Lattner
e1ba478cd6
Moved to lib/Analysis/DataStructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14447 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:20:39 +00:00
Chris Lattner
71ef8f7adc
Move PgmDependenceGraph.h out of the public include hierarchy
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14446 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:20:04 +00:00
Brian Gaeke
6bd5551763
Allow saving and restoring of double and float registers.
...
Allow copying of float registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14445 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 22:59:56 +00:00
Brian Gaeke
c53105c749
Add FITOS, FITOD, and F{ADD,SUB,MUL,DIV}{S,D}.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14444 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 22:53:56 +00:00
Chris Lattner
15d58b638a
Implement InstCombine/add.ll:test21
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14443 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 22:51:36 +00:00
Chris Lattner
8d5e05bb71
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14442 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 22:51:19 +00:00
Brian Gaeke
8a0ae9e9ca
Support printing constant pool indices.
...
If we see an "unknown operand", abort so it's easier to fix it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14441 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 22:50:44 +00:00
Brian Gaeke
ec3227fe39
Trim whitespace.
...
Support cast of ints (and narrower) to float and double.
Support cast double to double (using load and store).
Abort if we see a CallInst or SetCondInst with long/fp args, instead
of producing bad code.
Support add, sub, mul, div of float and double.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14440 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 22:47:33 +00:00
Chris Lattner
ce8158d1d6
Now that the SparcV9 specific MachineCodeForInstruction class uses it's own
...
map on the side, Instruction no longer has to be Annotable. This reduces
the size of the Instruction class by another 4 bytes (on a 32-bit system).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14439 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:57:34 +00:00
Chris Lattner
4e7244e68e
Do not find these ugly sparc-specific objects by using the annotation API on
...
instructions. Instead, keep a map of instructions -> MCFI objects in the
already sparc-specific class MachineFunctionInfo. This will slow down the
sparc backend a bit, but it does not penalize the rest of LLVM!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14438 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:52:17 +00:00
Chris Lattner
ea104df2b1
This class is no longer an annotation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14437 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:50:49 +00:00
Chris Lattner
4aa5b2affb
Add a map of MachineCodeForInstruction objects to MachineFunctionInfo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14436 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:50:30 +00:00
Chris Lattner
40515dba1b
Fold iType into Value::VTy
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14435 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:38:48 +00:00
Chris Lattner
7da38ec915
Eliminate the Instruction::iType field, folding it into the Value::VTy field.
...
This reduces the size of the instruction class by 4 bytes, and means that
isa<CallInst>(V) (for example) only needs to do one load from memory instead
of two.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14434 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:38:24 +00:00
Chris Lattner
6b5f30f365
Get rid of Annotable's vtable. If anyone deletes an object through an Annotable*,
...
they get what they deserve.
This reduces the size of Instruction & Function by 4 bytes each.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14433 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:36:39 +00:00
Chris Lattner
159286d60d
Make it obvious that this file is bad bad bad
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14432 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:21:20 +00:00
Chris Lattner
62372c2ee7
User ctor is now inline
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14431 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:01:38 +00:00
Chris Lattner
38ab9267c9
Make ctor inline, change ValueTy ->unsigned
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14430 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:01:15 +00:00
Chris Lattner
0b0863778f
Consider anything with a ValueType that is >= Instruction to be an instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14429 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-26 20:51:50 +00:00
Chris Lattner
3d4bd5aa8d
Instancevar was renamed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14428 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-26 20:33:39 +00:00
Chris Lattner
f6b7844101
Rearrange some code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14427 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-26 20:33:27 +00:00
Chris Lattner
fae098a56b
Don't call getValueType directly. the LLVM optimizer will turn it into the same code anyway :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14426 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-26 19:40:40 +00:00
Chris Lattner
098648af6a
There is no reason to print ValueType here
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14425 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-26 19:36:34 +00:00
Chris Lattner
af754dbf65
Simplify code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14424 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-26 19:31:26 +00:00