Reid Spencer
8594672a45
Assert that elements of packed are pointer/float/opaque.
...
llvm-svn: 34165
2007-02-10 22:02:45 +00:00
Chris Lattner
fded2d41c1
remove dead method.
...
llvm-svn: 34164
2007-02-10 20:37:40 +00:00
Chris Lattner
d47f00d794
eliminate use of TargetData::getIndexedOffset that takes a vector
...
llvm-svn: 34163
2007-02-10 20:35:22 +00:00
Chris Lattner
fd0d12756d
completely eliminate a temporary vector
...
llvm-svn: 34162
2007-02-10 20:33:15 +00:00
Chris Lattner
7223d491cb
eliminate temporary vectors.
...
llvm-svn: 34161
2007-02-10 20:31:59 +00:00
Chris Lattner
d079b34aa0
Switch LayoutInfo to be a DenseMap instead of an std::map. This speeds up
...
-load-vn -gcse by 2.3%.
llvm-svn: 34160
2007-02-10 20:26:17 +00:00
Chris Lattner
8fa88af5f0
add a typedef
...
llvm-svn: 34159
2007-02-10 20:18:06 +00:00
Chris Lattner
863b62eb50
eliminate the std::vector from StructLayout, allocating the elements immediately
...
after the StructLayout object in memory. This marginally improves locality,
speeding up -load-vn -gcse by ~0.8%.
llvm-svn: 34158
2007-02-10 20:15:41 +00:00
Chris Lattner
109373538b
encapsulate the rest of the StructLayout members.
...
llvm-svn: 34157
2007-02-10 19:59:22 +00:00
Chris Lattner
9dafd9fe90
Privatize StructLayout::MemberOffsets, adding an accessor
...
llvm-svn: 34156
2007-02-10 19:55:17 +00:00
Chris Lattner
e5eb7d79d3
add helper method.
...
llvm-svn: 34155
2007-02-10 19:54:24 +00:00
Chris Lattner
13b4f184fd
Use ManagedStatic to manage LayoutInfo, instead of rolling our own.
...
llvm-svn: 34154
2007-02-10 19:43:18 +00:00
Chris Lattner
eaceeb61fb
Change TargetData::getIndexedOffset interface to not require indices
...
in a vector.
llvm-svn: 34153
2007-02-10 19:33:15 +00:00
Reid Spencer
b8c5bbce4b
Allow PackedType to be constructed with an abstract type.
...
llvm-svn: 34152
2007-02-10 19:03:01 +00:00
Chris Lattner
61a62b514e
fix a grammar ambiguity noticed by Duncan
...
llvm-svn: 34151
2007-02-10 18:35:31 +00:00
Reid Spencer
422c616f9f
Align make log output with the rest of llvm.
...
llvm-svn: 34150
2007-02-10 15:14:00 +00:00
Reid Spencer
66bb33845e
Compaction tables don't exist any more.
...
llvm-svn: 34148
2007-02-10 14:07:56 +00:00
Reid Spencer
d5427f5249
For PR1194:
...
The bcreader counts on "primitive" types being inserted before they are
referenced in other types. With recent changes to the bcwriter, this fact
became exposed since IntegerType is no longer "primitive". We can no longer
count on all IntegerTypes being inserted early. This patch modifies
getOrCreateTypeSlot to insert any sub-type that can't possibly recurse
before we create the slot for the type. This has the benefit of reducing
the number of OpaqueType objects the reader needs to deal with.
llvm-svn: 34147
2007-02-10 14:04:08 +00:00
Reid Spencer
42791fc876
Fix a comment.
...
llvm-svn: 34146
2007-02-10 11:59:10 +00:00
Chris Lattner
a7ed569db1
convert some vectors to smallvector.
...
llvm-svn: 34145
2007-02-10 08:33:11 +00:00
Chris Lattner
8eb2002881
speed up the verifier 8.5% by using a smallvector instead of vector.
...
llvm-svn: 34144
2007-02-10 08:30:29 +00:00
Chris Lattner
a0792c722e
Change an std::set to a SmallPtrSet. This speeds up the verifier on
...
447.dealII from 1.27s to 0.86s.
llvm-svn: 34143
2007-02-10 08:19:44 +00:00
Chris Lattner
02141c9762
Change the table datastructure to be a vector<smallvector>, instead of
...
vector<vector> to avoid allocations. This speeds up bcwriting of 447.dealII
from 0.8276 to 0.7637s (8.4%).
This concludes this round of proding the bcwriter into submission. Final
speedup from 24.4s to 0.7637s (32x).
llvm-svn: 34142
2007-02-10 07:42:59 +00:00
Chris Lattner
6301eb8919
Make BytecodeWriter::outputValueSymbolTable *significantly* less abusive
...
of memory, through a combination of DenseMap and SmallVector. This speeds
up bcwriter on 447.dealII from 1.31s to 0.82s (60% faster).
llvm-svn: 34141
2007-02-10 07:31:44 +00:00
Chris Lattner
c2542fe089
make the datastructure used in BytecodeWriter::outputValueSymbolTable
...
*slightly* less abusive of memory. This speeds up the bcwriter from
1.83s to 1.32s (39% faster) on 447.dealII.
llvm-svn: 34140
2007-02-10 07:11:51 +00:00
Chris Lattner
5397f397fe
Switch typemap over to DenseMap. No significant speedup.
...
llvm-svn: 34139
2007-02-10 07:06:46 +00:00
Chris Lattner
1b93c3207e
Switch NodeMap from an std::map to a DenseMap. This speeds up bcwriting
...
of 447.dealII from 3.3s to 1.8s (80% faster).
llvm-svn: 34138
2007-02-10 07:01:05 +00:00
Chris Lattner
f686454486
Make find return the appropriate iterator/const_iterator
...
llvm-svn: 34137
2007-02-10 06:58:17 +00:00
Chris Lattner
279770b88d
use typedefs where appropriate
...
llvm-svn: 34136
2007-02-10 06:42:23 +00:00
Chris Lattner
98373d22fb
The ModuleLevel vector is often quite sparse. Switch it to a DenseMap. This
...
speeds up bcwriting of 447.dealII by 40%, from 4.63s to 3.32s.
llvm-svn: 34135
2007-02-10 06:38:19 +00:00
Chris Lattner
025607b8b0
Allow DenseMAp to take an explicit DenseMapKeyInfo
...
llvm-svn: 34134
2007-02-10 06:34:58 +00:00
Chris Lattner
dc8f129004
Make the ModuleLevel datastructure more sane. When a function-local value
...
is inserted into the table, it remembers that the value needs to be popped
off. This makes purgeFunction much faster, speeding up bcwriting of 447.dealII
from 6.8->4.6s (47%).
llvm-svn: 34133
2007-02-10 06:09:41 +00:00
Chris Lattner
d043d112d0
Only compute the module levels info once per module, instead of once
...
per function. This speeds up bcwriting on 447.dealII from 10.16s to 6.81s
(49%).
llvm-svn: 34132
2007-02-10 05:54:33 +00:00
Chris Lattner
b005a435cd
Clone and specialize CreateSlotIfNeeded into CreateFunctionValueSlot to handle
...
function-local values. This speeds up bcwriting a small 2.2% (10.384->10.156s
on 447.dealII), but paves the way for more important changes.
llvm-svn: 34131
2007-02-10 05:45:09 +00:00
Chris Lattner
31d8a25842
make getSlot/getTypeSlot inline
...
llvm-svn: 34130
2007-02-10 05:18:35 +00:00
Chris Lattner
cbbfa88ced
getTypeSlot can never fail
...
llvm-svn: 34129
2007-02-10 05:17:48 +00:00
Chris Lattner
78926ecd8e
getSlot can never fail. Make it assert internally, eliminate checks in
...
clients. Same for getTypeSlot.
llvm-svn: 34128
2007-02-10 05:13:03 +00:00
Chris Lattner
83352c4de3
simplify getOrCreateTypeSlot, eliminat doInsertType. Eliminate post-order iteration stuff.
...
llvm-svn: 34127
2007-02-10 05:02:50 +00:00
Chris Lattner
e6d3af76f8
simplify and speed up recursive type processing.
...
llvm-svn: 34126
2007-02-10 04:57:36 +00:00
Chris Lattner
b4d5d53916
rename getOrCreateSlot -> CreateSlotIfNeeded. Noone cares about the retval
...
llvm-svn: 34125
2007-02-10 04:54:01 +00:00
Chris Lattner
2965283d9f
refactor callers of insertType. inline insertType into its one remaining caller.
...
llvm-svn: 34124
2007-02-10 04:51:21 +00:00
Chris Lattner
fea071b3c8
simplify code.
...
llvm-svn: 34123
2007-02-10 04:47:51 +00:00
Chris Lattner
8e07ddf937
simplify some logic, reduce nesting
...
llvm-svn: 34122
2007-02-10 04:42:30 +00:00
Chris Lattner
7301538f7e
Remove dead ctor
...
llvm-svn: 34121
2007-02-10 04:38:34 +00:00
Chris Lattner
01a1b6aff1
ModuleContainsAllFunctionConstants is always true
...
llvm-svn: 34120
2007-02-10 04:36:10 +00:00
Chris Lattner
beafca02d1
only one client of getOrCreateSlot can pass a void typed value. Check type
...
there.
llvm-svn: 34119
2007-02-10 04:31:52 +00:00
Chris Lattner
2e462f53e4
inline hasNullValue, rename some variables, simplify some code.
...
llvm-svn: 34118
2007-02-10 04:29:03 +00:00
Chris Lattner
49365fa142
merge insertValue into its single caller, eliminate some redundant checks.
...
llvm-svn: 34117
2007-02-10 04:25:02 +00:00
Chris Lattner
fc3dd4e7a6
merge doInsertValue into insertValue
...
llvm-svn: 34116
2007-02-10 04:22:30 +00:00
Chris Lattner
ce0ce46355
insertvalue's second operand is always false
...
llvm-svn: 34115
2007-02-10 04:19:31 +00:00