Ted Kremenek
e33ba16368
Added versions of ReadPtr that takes an explicit SerializedPtrID. This allows
...
clients of the Deserializer to read the pointer ID before they are ready
to deserialize the object (which can mean registering a pointer reference
with the backpatcher).
Changed some methods that took an argument "SerializedPtrID" to "const SerializedPtrID&" (pass-by-reference). This is to accommodate a future
revision of SerializedPtrID where it may be much fatter than an unsigned
integer.
llvm-svn: 44021
2007-11-12 19:11:15 +00:00
Owen Anderson
c520c4b325
Break critical edges coming into blocks with PHI nodes.
...
llvm-svn: 44019
2007-11-12 17:27:27 +00:00
Owen Anderson
933b5b7e62
Add a flag for indirect branch instructions.
...
Target maintainers: please check that the instructions for your target are correctly marked.
llvm-svn: 44012
2007-11-12 07:39:39 +00:00
Evan Cheng
be51f28e2b
Refactor some code.
...
llvm-svn: 44010
2007-11-12 06:35:08 +00:00
Owen Anderson
a1cd45213d
As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really need
...
to be a pass of its own. Instead, move it out into a helper method.
llvm-svn: 44002
2007-11-12 01:05:09 +00:00
Anton Korobeynikov
0644bb865e
Clarify the meaning of '-2' register number
...
llvm-svn: 43998
2007-11-11 19:53:50 +00:00
Anton Korobeynikov
4edfea438a
Use TableGen to emit information for dwarf register numbers.
...
This makes DwarfRegNum to accept list of numbers instead.
Added three different "flavours", but only slightly tested on x86-32/linux.
Please check another subtargets if possible,
llvm-svn: 43997
2007-11-11 19:50:10 +00:00
Dale Johannesen
b988e7e8cd
Add CCAssignToStackABISizeAlign for convenience in
...
dealing with types whose size & alignment are
different on different subtargets. Use it for x86 f80.
llvm-svn: 43988
2007-11-10 22:07:15 +00:00
Ted Kremenek
195c478e1b
Updated method signature to conform with the typedef in the method prototype.
...
llvm-svn: 43982
2007-11-10 19:19:32 +00:00
Arnold Schwaighofer
d2c16ff905
Update tailcall code to include inline attribute operand for memcpy.
...
llvm-svn: 43978
2007-11-10 10:48:01 +00:00
Ted Kremenek
55e30be8ec
Added "random access" to the Deserializer to allow a client to jump to any
...
serialized block in the bitstream, including a block in an entirely different
nesting than the current block. This is useful for deserializing objects from
a bitstream in an order different from the order that they were serialized.
llvm-svn: 43973
2007-11-10 02:02:34 +00:00
Hartmut Kaiser
67297144ab
Fixed a strange construct. Please review.
...
llvm-svn: 43960
2007-11-09 19:59:00 +00:00
Evan Cheng
fb13fd6f93
Unbreak x86-64 jumptable.
...
llvm-svn: 43955
2007-11-09 19:11:23 +00:00
Anton Korobeynikov
5db5e352b9
Silence a warning
...
llvm-svn: 43954
2007-11-09 19:06:14 +00:00
Dale Johannesen
dfb85c7831
Revert previous rewrite per chris's comments.
...
llvm-svn: 43950
2007-11-09 18:07:11 +00:00
Chris Lattner
f9c0fd7488
Tighten up a check for folding away loads from (newly constant) globals. This
...
fixes a crash on Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll and
rdar://5585488.
llvm-svn: 43949
2007-11-09 17:33:02 +00:00
Duncan Sands
e795efea5b
Move MinAlign to MathExtras.h.
...
llvm-svn: 43944
2007-11-09 13:41:39 +00:00
Anton Korobeynikov
550b98e147
Fix indent
...
llvm-svn: 43941
2007-11-09 12:34:20 +00:00
Anton Korobeynikov
98638aede6
Forget to commit users part of value mapper interface
...
llvm-svn: 43940
2007-11-09 12:27:04 +00:00
Anton Korobeynikov
8eeca1c252
And delete this one
...
llvm-svn: 43939
2007-11-09 12:22:04 +00:00
Duncan Sands
e7a9ac929f
Fix some load/store logic that would be wrong for
...
apints on big-endian machines if the bitwidth is
not a multiple of 8. Introduce a new helper,
MVT::getStoreSizeInBits, and use it.
llvm-svn: 43934
2007-11-09 08:57:19 +00:00
Duncan Sands
bab9dc9433
Add terminating newline.
...
llvm-svn: 43933
2007-11-09 08:30:21 +00:00
Evan Cheng
797d56ff17
Much improved pic jumptable codegen:
...
Then:
call "L1$pb"
"L1$pb":
popl %eax
...
LBB1_1: # entry
imull $4, %ecx, %ecx
leal LJTI1_0-"L1$pb"(%eax), %edx
addl LJTI1_0-"L1$pb"(%ecx,%eax), %edx
jmpl *%edx
.align 2
.set L1_0_set_3,LBB1_3-LJTI1_0
.set L1_0_set_2,LBB1_2-LJTI1_0
.set L1_0_set_5,LBB1_5-LJTI1_0
.set L1_0_set_4,LBB1_4-LJTI1_0
LJTI1_0:
.long L1_0_set_3
.long L1_0_set_2
Now:
call "L1$pb"
"L1$pb":
popl %eax
...
LBB1_1: # entry
addl LJTI1_0-"L1$pb"(%eax,%ecx,4), %eax
jmpl *%eax
.align 2
.set L1_0_set_3,LBB1_3-"L1$pb"
.set L1_0_set_2,LBB1_2-"L1$pb"
.set L1_0_set_5,LBB1_5-"L1$pb"
.set L1_0_set_4,LBB1_4-"L1$pb"
LJTI1_0:
.long L1_0_set_3
.long L1_0_set_2
llvm-svn: 43924
2007-11-09 01:32:10 +00:00
Evan Cheng
f14006f4d6
Didn't mean to check these in.
...
llvm-svn: 43923
2007-11-09 01:28:33 +00:00
Evan Cheng
1bf166312b
Bug fix. Passive nodes are not in SUnitMap.
...
llvm-svn: 43922
2007-11-09 01:27:11 +00:00
Dale Johannesen
04fd82088e
Rewrite Dwarf number handling per review comments.
...
llvm-svn: 43918
2007-11-09 00:47:10 +00:00
Ted Kremenek
1d9406c1ca
Updated Deserializer class to provide more information about the current
...
block that is being visited in the bitstream. The client can also now
skip blocks before reading them, and query the current abbreviation number
as seen from the perspective of the Deserializer. This allows the client
to be more interactive in the deserialization process (if they so choose).
llvm-svn: 43916
2007-11-09 00:43:51 +00:00
Owen Anderson
65d2fcdd2a
This preserves critical edge breaking.
...
llvm-svn: 43911
2007-11-08 22:23:57 +00:00
Owen Anderson
3bc8124a66
Make BreakCriticalMachineEdges available as a pass that can be depended on.
...
llvm-svn: 43910
2007-11-08 22:20:23 +00:00
Ted Kremenek
67135ebaff
Added typedef "SerializedPtrID" to represent the pointer handle written to disk
...
instead of just using "unsigned". This gives us more flexibility in changing
the definition of the handle later, and is more self-documenting.
Added tracking of block stack in the Deserializer. Now clients can query
if they are still within a block using the methods GetCurrentBlockLocation()
and FinishedBlock().
llvm-svn: 43903
2007-11-08 19:50:46 +00:00
Andrew Lenharth
19ca5c7021
Better check
...
llvm-svn: 43897
2007-11-08 18:45:15 +00:00
Andrew Lenharth
8cf11aa330
Fix PR1780
...
llvm-svn: 43893
2007-11-08 17:39:28 +00:00
Lauro Ramos Venancio
f6a67bf700
[ARM] Implement __builtin_thread_pointer.
...
llvm-svn: 43892
2007-11-08 17:20:05 +00:00
Evan Cheng
ece4c68b82
If both parts of smul_lohi, etc. are used, don't simplify. If only one part is used, try simplify it.
...
llvm-svn: 43888
2007-11-08 09:25:29 +00:00
Owen Anderson
0be8c1dafe
Add the majority of machine-level critical edge breaking pass. Most of this was written by Fernando, cleanup and updating to TOT by me.
...
This still needs a bit of work, particularly to handle jump tables properly.
llvm-svn: 43885
2007-11-08 07:55:43 +00:00
Owen Anderson
bfbc12973d
Take another stab at getting isLiveIn() and isLiveOut() right.
...
llvm-svn: 43869
2007-11-08 01:32:45 +00:00
Owen Anderson
9d86ef12c8
Bring UsedBlocks back. StrongPHIElimination needs this information.
...
llvm-svn: 43866
2007-11-08 01:20:48 +00:00
Dale Johannesen
1b9de4dd6f
Complete conditionalization of Dwarf reg numbers.
...
Would somebody not on Darwin please make sure this
doesn't break anything. Exception handling failures
would be the most likely symptom.
llvm-svn: 43844
2007-11-07 21:48:35 +00:00
Ted Kremenek
81ad944c94
Implemented generic serialization of APFloat.
...
llvm-svn: 43829
2007-11-07 18:39:22 +00:00
Ted Kremenek
cc88d37531
Implemented serialization of signed integers.
...
llvm-svn: 43828
2007-11-07 18:24:34 +00:00
Evan Cheng
e742ee1dbe
Simplify my (il)logic.
...
llvm-svn: 43819
2007-11-07 08:08:25 +00:00
Owen Anderson
c6a5387d09
Add some more of StrongPHIElim.
...
llvm-svn: 43805
2007-11-07 05:17:15 +00:00
Dale Johannesen
fbe69d2cd6
Interchange Dwarf numbers of ESP and EBP on x86 Darwin.
...
Much improvement in exception handling.
llvm-svn: 43794
2007-11-07 00:25:05 +00:00
Ted Kremenek
bf75685321
Serializer no longer automatically emits a root-level block in the bitstream.
...
llvm-svn: 43784
2007-11-06 22:22:25 +00:00
Ted Kremenek
cd0c32865c
Augmented ReadPtr and ReadOwnedPtr to control whether or not a pointer is allowed to be backpatched
...
or can be registered with the deserializer to backpatch other pointers.
llvm-svn: 43783
2007-11-06 22:21:14 +00:00
Chris Lattner
581f006f5d
make smallptrset more const and type correct, which caught a few
...
minor bugs.
llvm-svn: 43782
2007-11-06 22:12:43 +00:00
Dan Gohman
ccfc028283
Remainder operations must be either integer or floating-point.
...
llvm-svn: 43781
2007-11-06 22:11:54 +00:00
Chris Lattner
8201a9bca0
fix const correctness, BB is const, so its predecessors are too
...
llvm-svn: 43780
2007-11-06 22:07:40 +00:00
Chris Lattner
cbad11e027
don't put erase or query for non-allocainst pointers in an set of allocainsts*'s
...
llvm-svn: 43779
2007-11-06 22:07:22 +00:00
Chris Lattner
d8515f8e80
Implement PR1777 by detecting dependent phis that
...
all compute the same value.
llvm-svn: 43777
2007-11-06 21:52:06 +00:00