1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
Commit Graph

55521 Commits

Author SHA1 Message Date
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