Chris Lattner
e7990f78bf
When doing v1->RAUW(v2), don't do anything to metadata. We don't know
...
why one was replaced with the other. Even in the specific case of
debug information, it doesn't make sense to transfer the location over,
this will just result in jumbled loc info.
llvm-svn: 92241
2009-12-29 02:53:52 +00:00
Chris Lattner
692c53dbf0
sink the Instruction::HasMetadata bit into SubclassData.
...
llvm-svn: 92240
2009-12-29 02:46:09 +00:00
Chris Lattner
2c82be93e6
add a layer of accessors around the Value::SubClassData member, and use
...
a convention (shadowing the setter with private forwarding function) to
prevent subclasses from accidentally using it.
This exposed some bogosity in ConstantExprs, which was propaging the
opcode of the constant expr into the NUW/NSW/Exact field in the
getWithOperands/getWithOperandReplaced methods.
llvm-svn: 92239
2009-12-29 02:14:09 +00:00
Chris Lattner
9ec640a902
This is a major cleanup of the instruction metadata interfaces that
...
I asked Devang to do back on Sep 27. Instead of going through the
MetadataContext class with methods like getMD() and getMDs(), just
ask the instruction directly for its metadata with getMetadata()
and getAllMetadata().
This includes a variety of other fixes and improvements: previously
all Value*'s were bloated because the HasMetadata bit was thrown into
value, adding a 9th bit to a byte. Now this is properly sunk down to
the Instruction class (the only place where it makes sense) and it
will be folded away somewhere soon.
This also fixes some confusion in getMDs and its clients about
whether the returned list is indexed by the MDID or densely packed.
This is now returned sorted and densely packed and the comments make
this clear.
This introduces a number of fixme's which I'll follow up on.
llvm-svn: 92235
2009-12-28 23:41:32 +00:00
Chris Lattner
cb59c59db8
rearrange some code.
...
llvm-svn: 92234
2009-12-28 21:56:07 +00:00
Chris Lattner
8ca10b9e64
add IRBuilder.cpp to cmake
...
llvm-svn: 92233
2009-12-28 21:52:41 +00:00
Chris Lattner
f1704b24be
remove #include that comes in from ConstantFolder.h
...
llvm-svn: 92232
2009-12-28 21:52:06 +00:00
Chris Lattner
28de6cdbf5
remove #include of Function.h from IRBuilder
...
llvm-svn: 92231
2009-12-28 21:50:56 +00:00
Chris Lattner
e70c40e8ac
move debug info stuff out of line, allowing two #includes
...
to go away from IRBuilder.h
llvm-svn: 92230
2009-12-28 21:45:40 +00:00
Chris Lattner
e0b9847223
split code that doesn't need to be templated out of IRBuilder into a new
...
non-templated IRBuilderBase class. Move that large CreateGlobalString
out of line, eliminating the need to #include GlobalVariable.h in IRBuilder.h
llvm-svn: 92227
2009-12-28 21:28:46 +00:00
Chris Lattner
13e5945d1d
rename ivar to be more descriptive.
...
llvm-svn: 92226
2009-12-28 21:12:29 +00:00
Chris Lattner
cd3aa9d1ff
rename getMDKind -> getMDKindID, make it autoinsert if an MD Kind
...
doesn't exist already, eliminate registerMDKind. Tidy up a bunch
of random stuff.
llvm-svn: 92225
2009-12-28 20:45:51 +00:00
Chris Lattner
2b65f2d7d4
rename getHandlerNames to getMDKindNames, simplify its interface
...
and simplify all the clients that use it.
llvm-svn: 92224
2009-12-28 20:10:43 +00:00
Chris Lattner
5420d062f6
tidy up and delete a dead smallvector.
...
llvm-svn: 92223
2009-12-28 19:49:00 +00:00
Benjamin Kramer
798349c4d1
Add missing include (for inline PATypeHolder::get).
...
llvm-svn: 92222
2009-12-28 12:27:56 +00:00
Chris Lattner
8c6fbdc63e
avoid a completely unneeded linear walk.
...
llvm-svn: 92221
2009-12-28 09:32:10 +00:00
Chris Lattner
9229f79945
Eliminate two bits of ugliness in MDNode::replaceElement:
...
eliminate the temporary smallvector, and only do FindNodeOrInsertPos
twice if the first one succeeds and we delete a node.
llvm-svn: 92220
2009-12-28 09:24:53 +00:00
Chris Lattner
e36f3cf0ca
rearrange some methods, no functionality change.
...
llvm-svn: 92219
2009-12-28 09:12:35 +00:00
Chris Lattner
2cfabb2151
avoid temporary CallbackVH's.
...
llvm-svn: 92218
2009-12-28 09:10:16 +00:00
Chris Lattner
14d3bc91c4
Rewrite the function-local validation logic for MDNodes (most of r91708).
...
Among other benefits, this doesn't leak the SmallPtrSet, has the verifier
code in the verifier pass, actually does the verification at the end,
and is considerably simpler.
llvm-svn: 92217
2009-12-28 09:07:21 +00:00
Chris Lattner
fcc7918518
rename MDNode instance variables to something meaningful.
...
llvm-svn: 92216
2009-12-28 08:48:12 +00:00
Chris Lattner
2f436b213d
snip one more #include from Metadata.h
...
llvm-svn: 92214
2009-12-28 08:30:43 +00:00
Chris Lattner
ec51bdcaf7
prune #includes more.
...
llvm-svn: 92213
2009-12-28 08:26:43 +00:00
Chris Lattner
77f471055d
prune some #includes
...
llvm-svn: 92212
2009-12-28 08:24:16 +00:00
Chris Lattner
6dd4686b48
Metadata.h doesn't need to include ValueHandle.h anymore.
...
llvm-svn: 92211
2009-12-28 08:20:46 +00:00
Chris Lattner
739292d361
change the strange MetadataContext::getMDs function to expose less
...
irrelevant internal implementation details to clients.
llvm-svn: 92210
2009-12-28 08:14:54 +00:00
Chris Lattner
4967dbad20
change NamedMDNode to use a pimpl for its operand list instead
...
of making it a declared part of the value.
llvm-svn: 92209
2009-12-28 08:07:14 +00:00
Chris Lattner
0a47dbff64
eliminate the elem_* iterator stuff from NamedMDNode.
...
llvm-svn: 92208
2009-12-28 07:57:01 +00:00
Chris Lattner
19c825e082
move ElementVH out of the MDNode class into the MDNode.cpp file. Among
...
other things, this avoids vtable and rtti data for it being splatted in
every translation unit that uses it.
llvm-svn: 92207
2009-12-28 07:41:54 +00:00
Chris Lattner
62ba56ca23
move these out of their own timer groups into the 'uncategorized' groups.
...
llvm-svn: 92206
2009-12-28 07:41:18 +00:00
Sanjiv Gupta
efad5b2a93
Fixed llc crash for zext (i1 -> i8) loads.
...
llvm-svn: 92201
2009-12-28 04:53:24 +00:00
Sanjiv Gupta
d17915f6f0
Allow targets to specify the return type of libcalls that are generated for floating point comparisons, rather than hard-coding them as i32.
...
llvm-svn: 92199
2009-12-28 02:40:33 +00:00
Bill Wendling
5457c30e95
Mark variable used by 'assert' as 'unused'.
...
llvm-svn: 92198
2009-12-28 02:07:00 +00:00
Bill Wendling
a717566a5c
Remove dead variable.
...
llvm-svn: 92197
2009-12-28 02:05:36 +00:00
Bill Wendling
6904b5a782
Remove dead variable.
...
llvm-svn: 92196
2009-12-28 02:04:53 +00:00
Bill Wendling
da542f1b43
Remove dead variable.
...
llvm-svn: 92195
2009-12-28 02:01:06 +00:00
Bill Wendling
4f58b72e9e
Remove dead variable.
...
llvm-svn: 92194
2009-12-28 02:00:30 +00:00
Bill Wendling
4e43e78b2e
Remove dead variable.
...
llvm-svn: 92193
2009-12-28 01:57:39 +00:00
Bill Wendling
3f3f9a1bc8
Remove dead store.
...
llvm-svn: 92192
2009-12-28 01:54:15 +00:00
Bill Wendling
32467ad0f7
Remove dead store and simplify code.
...
llvm-svn: 92191
2009-12-28 01:53:00 +00:00
Bill Wendling
3fbb708d4f
Remove dead store.
...
llvm-svn: 92190
2009-12-28 01:51:30 +00:00
Bill Wendling
08d36672e1
Remove dead variable.
...
llvm-svn: 92189
2009-12-28 01:48:56 +00:00
Bill Wendling
5badb477fa
Remove dead variable.
...
llvm-svn: 92188
2009-12-28 01:47:48 +00:00
Bill Wendling
6f5d4b9eb6
Remove dead store.
...
llvm-svn: 92187
2009-12-28 01:44:39 +00:00
Bill Wendling
8042a829e5
Remove dead variable.
...
llvm-svn: 92186
2009-12-28 01:42:12 +00:00
Bill Wendling
0eae096c38
Remove dead variable.
...
llvm-svn: 92185
2009-12-28 01:41:12 +00:00
Bill Wendling
b96be04b8a
Remove dead variable.
...
llvm-svn: 92184
2009-12-28 01:36:02 +00:00
Bill Wendling
5dcf84ad18
Mark some debug variables as 'unused' to quiet compiler and analyzer.
...
llvm-svn: 92183
2009-12-28 01:34:57 +00:00
Bill Wendling
ae29dded44
Remove dead store. The initial value was never used, but always overridden.
...
llvm-svn: 92182
2009-12-28 01:31:11 +00:00
Bill Wendling
baec6e54f4
Add an "ATTRIBUTE_UNUSED" macro (and use it). It's for variables which are
...
mainly used in debugging and/or assert situations. It should make the compiler
and the static analyzer stop nagging us about them.
llvm-svn: 92181
2009-12-28 01:20:29 +00:00