1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
Commit Graph

34853 Commits

Author SHA1 Message Date
Chris Lattner
db243bdde8 eliminate another copy of the mdnode printing logic, simplify the
one that remains.

llvm-svn: 92334
2009-12-31 02:31:59 +00:00
Chris Lattner
81c909630f random tidying for MDNode printing.
llvm-svn: 92333
2009-12-31 02:27:30 +00:00
Chris Lattner
4776298748 eliminate a bunch of useless forwarding functions with one caller.
llvm-svn: 92332
2009-12-31 02:23:35 +00:00
Chris Lattner
ffb8ade190 make mdnMap type safe, rename accessors for consistency with the rest of llvm.
llvm-svn: 92331
2009-12-31 02:20:11 +00:00
Chris Lattner
2e52832769 metadata can't be a global var initializer.
llvm-svn: 92330
2009-12-31 02:15:45 +00:00
Chris Lattner
0017de9a80 simplify mdnode printing logic. Now N->dump() only
dumps one node instead of all of them.

llvm-svn: 92329
2009-12-31 02:13:35 +00:00
Chris Lattner
63181672c5 unify two copies of the NamedMDNode printing code.
llvm-svn: 92327
2009-12-31 01:54:05 +00:00
Chris Lattner
d40fbce519 fix printing of function-local metadata to print all the operands of the
mdnode, not just operand 0 over and over.

llvm-svn: 92326
2009-12-31 01:44:44 +00:00
Chris Lattner
5922bf638c simplify printing of mdstring and Argument.
llvm-svn: 92325
2009-12-31 01:41:14 +00:00
Chris Lattner
a3660e707c simplify asmprinting of NamedMDNode
llvm-svn: 92324
2009-12-31 01:36:50 +00:00
Chris Lattner
8e4ab636ed Remove #include of metadata.h from intrinsicinst.h. The only
method that needs it (DbgValueInst::getValue) has been moved out
of line.

llvm-svn: 92323
2009-12-31 01:32:41 +00:00
Chris Lattner
c12382b7c8 rename "elements" of metadata to "operands". "Elements" are
things that occur in types.  "operands" are things that occur
in values.

llvm-svn: 92322
2009-12-31 01:22:29 +00:00
Chris Lattner
9afb6e9c27 Optimize MDNode to coallocate the operand list immediately
after the MDNode in memory.  This eliminates the operands
pointer and saves a new[] per node.

Note that the code in DIDerivedType::replaceAllUsesWith is wrong
and quite scary.  A MDNode should not be RAUW'd with something
else: this changes all uses of the mdnode, which may not be debug
info related!  Debug info should use something non-mdnode for
declarations.

llvm-svn: 92321
2009-12-31 01:05:46 +00:00
Chris Lattner
6108ad9dd5 tidy
llvm-svn: 92320
2009-12-31 00:51:46 +00:00
Chris Lattner
b2de9bbb5e do not bother reuniquing mdnodes whose operands drop to null. Doing
so can be a huge performance issue when tearing down modules and mdnodes
are not guaranteed to be unique anyway.  This speeds up:
$ time ~/llvm/Release/bin/clang gcc.c -w -S -g

from 72 to 35s, where gcc.c is from:
http://people.csail.mit.edu/smcc/projects/single-file-programs/

llvm-svn: 92315
2009-12-30 21:42:11 +00:00
Chris Lattner
f3520d2c35 remove some misleading comments.
llvm-svn: 92311
2009-12-30 20:25:09 +00:00
Douglas Gregor
301af636d3 Implement edit distance for StringRef
llvm-svn: 92309
2009-12-30 17:23:44 +00:00
Chris Lattner
740252f319 remove some fixme's
llvm-svn: 92304
2009-12-30 06:00:36 +00:00
Chris Lattner
c3422a8190 now that instruction metadata is only parsed in one place, eliminate the
parser-global MDsOnInst vector and make ParseInstructionMetadata return
its result by-ref through an argument like the entire rest of the parser.

llvm-svn: 92302
2009-12-30 05:48:36 +00:00
Chris Lattner
fb3b372e6d reimplement ParseOptionalInfo as ParseOptionalCommaAlign, correctly
handle the comma case for metadata.

llvm-svn: 92301
2009-12-30 05:44:30 +00:00
Chris Lattner
f7b95d1fbc rename ParseOptionalCustomMetadata -> ParseInstructionMetadata,
and make it non-optional.  This fixes the bug where we'd accept
and ignore a spurious comma after some instructions.

llvm-svn: 92300
2009-12-30 05:31:19 +00:00
Chris Lattner
89aae53e72 convert 4 more instructions over.
llvm-svn: 92299
2009-12-30 05:27:33 +00:00
Chris Lattner
2aaf4a0490 add facilities to start factoring instruction metadata parsing
out of each opcode's handler.  Change ret over so far.

llvm-svn: 92298
2009-12-30 05:23:43 +00:00
Chris Lattner
03a91d987f reimplement insertvalue/extractvalue metadata handling to not blindly
accept invalid input.  Actually add a testcase.

llvm-svn: 92297
2009-12-30 05:14:00 +00:00
Chris Lattner
2ed8fad119 remove two bogus calls that accepted metadata in the middle of insert/extract value
*constant exprs*.

llvm-svn: 92296
2009-12-30 05:04:46 +00:00
Chris Lattner
63289c0f1e rename NamedOrCustomMD -> MetadataVar to follow conventions of all the rest of the code.
llvm-svn: 92295
2009-12-30 05:02:06 +00:00
Chris Lattner
2e5b6d96ac rename lltok::Metadata -> lltok::exclaim. We name tokens
after their syntactic form, not their semantic form.

llvm-svn: 92294
2009-12-30 04:56:59 +00:00
Chris Lattner
6664b8bd4d rename MetadataCache -> NumberedMetadata to follow the convention
used by other things.  Convert it to a vector since it is a dense 
numbering.

llvm-svn: 92293
2009-12-30 04:51:58 +00:00
Chris Lattner
bc506fa595 rewrite ParseMDNodeVector to follow the normal patter used in the .ll parser.
llvm-svn: 92292
2009-12-30 04:42:57 +00:00
Chris Lattner
9583b65fb9 rename ParseMDNode -> ParseMDNodeID, since it parses !42, not !{... } as you'd expect.
llvm-svn: 92291
2009-12-30 04:15:23 +00:00
Chris Lattner
c42b8ff24e fix parsing of mdstring values.
llvm-svn: 92290
2009-12-30 04:13:37 +00:00
Chris Lattner
41a3666fc1 remove the code added in r90497. It has several major issues and no tests.
llvm-svn: 92288
2009-12-30 02:20:07 +00:00
Chris Lattner
4f406c8c74 split t_Metadata into t_MDNode and t_MDString, eliminating some unsafe casting.
llvm-svn: 92287
2009-12-30 02:11:14 +00:00
Chris Lattner
c549263f8a factor code even more.
llvm-svn: 92280
2009-12-29 22:40:21 +00:00
Chris Lattner
4dd14b6835 simplify some code and unbreak the build by not consuming an
extra token.

llvm-svn: 92279
2009-12-29 22:35:39 +00:00
Benjamin Kramer
aa342be382 remove a really wrong parenthesis.
llvm-svn: 92277
2009-12-29 22:17:06 +00:00
Chris Lattner
66fa49bda4 clean up some really strange code.
llvm-svn: 92275
2009-12-29 22:01:50 +00:00
Chris Lattner
4803e84704 change ParseMDString and ParseMDNode to take arguments of the right type.
This exposed a raft of other problems, which I'll deal with in subsequent
patches.

llvm-svn: 92273
2009-12-29 21:53:55 +00:00
Chris Lattner
bfd6a6f096 switch to TrackingVH instead of WeakVH, since these can never
be RAUW'd and go to null.  This also gets us some sorely lacking
type safety.

llvm-svn: 92272
2009-12-29 21:43:58 +00:00
Chris Lattner
c6b925c592 Each instruction is allowed to have *multiple* different
metadata objects on them.  Though the entire compiler supports this,
the asmparser didn't.

llvm-svn: 92270
2009-12-29 21:25:40 +00:00
Chris Lattner
86c74f4783 Do not crash when .ll printing metadata that smells like debug info, but isn't.
llvm-svn: 92268
2009-12-29 21:17:33 +00:00
Chris Lattner
baa1820ccb fix indentation, fit in 80 cols.
llvm-svn: 92267
2009-12-29 21:09:57 +00:00
Benjamin Kramer
1d24aae2db Replace a few more SmallVectors with arrays.
llvm-svn: 92265
2009-12-29 16:57:26 +00:00
Benjamin Kramer
e59de5e9b0 Use an array instead of a SmallVector.
llvm-svn: 92264
2009-12-29 11:04:52 +00:00
Chris Lattner
d981b3fc91 remove a bunch of unneeded functions.
llvm-svn: 92263
2009-12-29 09:32:19 +00:00
Chris Lattner
430379c2d5 major cleanups, much of this file was incorrectly indented.
llvm-svn: 92262
2009-12-29 09:22:47 +00:00
Chris Lattner
f0034478f8 one pass of cleanup over DebugInfo.h. Much more is still needed.
llvm-svn: 92261
2009-12-29 09:15:46 +00:00
Chris Lattner
31895ba512 prune #includes.
llvm-svn: 92260
2009-12-29 09:12:29 +00:00
Chris Lattner
84e9de4a58 Final step in the metadata API restructuring: move the
getMDKindID/getMDKindNames methods to LLVMContext (and add
convenience methods to Module), eliminating MetadataContext.
Move the state that it maintains out to LLVMContext.

llvm-svn: 92259
2009-12-29 09:01:33 +00:00
Chris Lattner
a78c161348 remove useless argument.
llvm-svn: 92256
2009-12-29 08:03:58 +00:00
Chris Lattner
fde39fb4f6 privatize another interface.
llvm-svn: 92255
2009-12-29 07:56:15 +00:00
Chris Lattner
c39498971e the only call to this function (from clang) has been removed, zap it.
llvm-svn: 92254
2009-12-29 07:50:09 +00:00
Chris Lattner
dcc5032728 remove some unneeded Metadata interfaces.
llvm-svn: 92252
2009-12-29 07:44:16 +00:00
Chris Lattner
20668429a2 fix .cpp file to not wrap the entire file in namespace blocks.
llvm-svn: 92250
2009-12-29 07:28:33 +00:00
Chris Lattner
110fc20bd8 tidy up debug info comments, use ->isVoidTy() where reasonable.
llvm-svn: 92249
2009-12-29 07:25:48 +00:00
Sanjiv Gupta
543a6716fb Extern declaration for unordered.f32 libcall was not being emitted. Fixed that.
llvm-svn: 92242
2009-12-29 03:24:34 +00:00
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
8ca10b9e64 add IRBuilder.cpp to cmake
llvm-svn: 92233
2009-12-28 21:52:41 +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
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
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
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
Bill Wendling
008e2e1e7f Remove dead variable.
llvm-svn: 92180
2009-12-28 01:02:21 +00:00
Bill Wendling
8d5a69f960 Remove dead variable.
llvm-svn: 92179
2009-12-28 01:01:14 +00:00
Bill Wendling
091861587d Remove dead variable.
llvm-svn: 92178
2009-12-28 01:00:12 +00:00
Eli Friedman
3a53d1cb1a PR5886: Make sure IMUL32m is marked as setting EFLAGS, so scheduling doesn't
do illegal stuff around it.  No testcase because the issue is very fragile.

llvm-svn: 92167
2009-12-26 20:08:30 +00:00
Bill Wendling
c49babee26 Avoid assigning to Changed when it won't be used after the return.
llvm-svn: 92160
2009-12-25 13:50:18 +00:00
Bill Wendling
f3d0708729 Remove dead store.
llvm-svn: 92159
2009-12-25 13:45:50 +00:00
Bill Wendling
8273efdd31 Remove dead store from copy-pasto.
llvm-svn: 92158
2009-12-25 13:44:36 +00:00
Bill Wendling
736d9ee6b8 Remove dead store.
llvm-svn: 92157
2009-12-25 13:39:58 +00:00
Bill Wendling
32e19f65c4 Remove dead store.
llvm-svn: 92156
2009-12-25 13:37:27 +00:00
John McCall
75f1b8beeb Implement support for converting to string at "natural precision", and fix some
major bugs in long-precision conversion.

llvm-svn: 92150
2009-12-24 23:18:09 +00:00
John McCall
c6cdebbedd Substantially optimize APFloat::toString() by doing a single large divide to
cut the significand down to the desired precision *before* entering the
core divmod loop.  Makes the overall algorithm logarithmic in the exponent.

There's still a lot of room for improvement here, but this gets the
performance back down to acceptable-for-diagnostics levels, even for
long doubles.
negligible, even on long doubles.

llvm-svn: 92130
2009-12-24 12:16:56 +00:00
John McCall
c71c44ec7f Add accessors for the largest-magnitude, smallest-magnitude, and
smallest-normalized-magnitude values in a given FP semantics.
Provide an APFloat-to-string conversion which I am quite ready to admit could
be much more efficient.

llvm-svn: 92126
2009-12-24 08:56:26 +00:00
John McCall
dad4e2e4e5 Set Remainder before Quotient in case Quotient and LHS alias. The new
order should be immune to such problems.

llvm-svn: 92124
2009-12-24 08:52:06 +00:00
Chris Lattner
4e96d36f72 handle equality memcmp of 8 bytes on x86-64 with two unaligned loads and a
compare.  On other targets we end up with a call to memcmp because we don't
want 16 individual byte loads.  We should be able to use movups as well, but
we're failing to select the generated icmp.

llvm-svn: 92107
2009-12-24 01:07:17 +00:00
David Greene
12d565aa89 Change errs() to dbgs().
llvm-svn: 92099
2009-12-24 00:39:02 +00:00
Chris Lattner
5d3919d5f9 move an optimization for memcmp out of simplifylibcalls and into
SDISel.  This optimization was causing simplifylibcalls to 
introduce type-unsafe nastiness.  This is the first step, I'll be 
expanding the memcmp optimizations shortly, covering things that
we really really wouldn't want simplifylibcalls to do.

llvm-svn: 92098
2009-12-24 00:37:38 +00:00
David Greene
48aa5efa78 Change errs() to dbgs().
llvm-svn: 92097
2009-12-24 00:34:21 +00:00
David Greene
42be8783c0 Change errs() to dbgs().
llvm-svn: 92096
2009-12-24 00:31:35 +00:00
David Greene
f215ecfc4d Change errs() to dbgs().
llvm-svn: 92094
2009-12-24 00:27:55 +00:00
David Greene
d91c862004 Change errs() to dbgs().
llvm-svn: 92093
2009-12-24 00:14:25 +00:00
David Greene
7d1f350ec6 Change errs() to dbgs().
llvm-svn: 92092
2009-12-24 00:06:26 +00:00
David Greene
06d50ca292 Change errs() to dbgs().
llvm-svn: 92091
2009-12-23 23:47:53 +00:00
David Greene
82413e3a13 Change errs() to dbgs().
llvm-svn: 92088
2009-12-23 23:38:28 +00:00
David Greene
c0eced92e3 Change dbgs() back to errs() as Chris requested.
llvm-svn: 92086
2009-12-23 23:29:28 +00:00
David Greene
693db7a309 Change dbgs() back to errs() as Chris requested.
llvm-svn: 92085
2009-12-23 23:27:15 +00:00
Chris Lattner
7dbb93e430 reorder to follow a normal fall-through style, no functionality change.
llvm-svn: 92084
2009-12-23 23:24:51 +00:00
David Greene
9c8c8af11d Clarify how dbgs() operates.
llvm-svn: 92083
2009-12-23 23:23:15 +00:00
David Greene
0c06474821 Change dbgs() back to errs() for assert messages as Chris requested.
llvm-svn: 92081
2009-12-23 23:14:41 +00:00
David Greene
5980bb69ba Change dbgs() back to errs() for assert messages as Chris requested.
llvm-svn: 92080
2009-12-23 23:09:39 +00:00
Chris Lattner
0f8308d48a sizeof(char) is always 1.
llvm-svn: 92079
2009-12-23 23:03:24 +00:00
David Greene
b73d637eba Change dbgs() back to errs() for assert messages as Chris requested.
llvm-svn: 92077
2009-12-23 23:00:50 +00:00
David Greene
f227aac0f4 Change dbgs() back to errs() for assert messages as Chris requested.
llvm-svn: 92076
2009-12-23 22:59:29 +00:00
David Greene
1b160211dd Remove dump routine and the associated Debug.h from a header. Patch up
other files to compensate.

llvm-svn: 92075
2009-12-23 22:58:38 +00:00
David Greene
dafe3d88d6 Change dbgs() back to errs() as Chris requested.
llvm-svn: 92073
2009-12-23 22:49:57 +00:00
David Greene
02480b7d83 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92071
2009-12-23 22:35:10 +00:00
David Greene
b348240e9c Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92068
2009-12-23 22:28:01 +00:00
David Greene
62d4863b56 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92067
2009-12-23 22:18:14 +00:00
David Greene
f2377def25 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92066
2009-12-23 22:10:20 +00:00
David Greene
fc8ae247eb Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92063
2009-12-23 21:58:29 +00:00
David Greene
4caa552456 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92060
2009-12-23 21:48:18 +00:00
Jakob Stoklund Olesen
e82ce92826 Move kill flags when the same register occurs more than once in a sequence.
llvm-svn: 92058
2009-12-23 21:34:03 +00:00
Jakob Stoklund Olesen
17a89f1f8a Handle undef operands properly.
llvm-svn: 92054
2009-12-23 21:28:42 +00:00
Jakob Stoklund Olesen
f18e89a0bf Make insert position available to MergeOpsUpdate.
Rearrange arguments.
No functional changes

llvm-svn: 92053
2009-12-23 21:28:37 +00:00
Jakob Stoklund Olesen
55c03c7cef Perform kill flag calculations in new method. No functional changes.
llvm-svn: 92052
2009-12-23 21:28:31 +00:00
Jakob Stoklund Olesen
423f1e70e6 Move repeated code to a new method. No functional change.
llvm-svn: 92051
2009-12-23 21:28:23 +00:00
David Greene
c8b577197f Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92050
2009-12-23 21:27:29 +00:00
David Greene
fd7042fa79 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92048
2009-12-23 21:16:54 +00:00
David Greene
28b8bcd98d Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92046
2009-12-23 21:06:14 +00:00
David Greene
33f717c804 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92042
2009-12-23 20:52:41 +00:00
David Greene
016e0af68d Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92040
2009-12-23 20:43:58 +00:00
David Greene
1c88ae8f15 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92039
2009-12-23 20:34:27 +00:00
David Greene
e34eb9cc32 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92037
2009-12-23 20:20:46 +00:00
David Greene
a2539e0ff7 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92035
2009-12-23 20:10:59 +00:00
David Greene
2a072c7ac5 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92034
2009-12-23 20:03:58 +00:00
David Greene
218c909299 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92033
2009-12-23 19:51:44 +00:00
David Greene
bcfb683e76 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92032
2009-12-23 19:45:49 +00:00
David Greene
b7dde86ae2 Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92029
2009-12-23 19:27:59 +00:00
David Greene
f0082114af Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92026
2009-12-23 19:21:19 +00:00
David Greene
4d8f4303bd Convert debug messages to use dbgs(). Generally this means
s/errs/dbgs/g except for certain special cases.

llvm-svn: 92024
2009-12-23 19:15:13 +00:00
Douglas Gregor
0f306eba2f Alternative fix to make sure that the extern declarations used by
DynamicLibrary::SearchForAddressOfSymbol refer to declarations in the
global namespace.

llvm-svn: 92023
2009-12-23 19:12:50 +00:00
Douglas Gregor
44f2fe915f Revert 92020 until I figure out a more portable fix
llvm-svn: 92021
2009-12-23 19:04:10 +00:00
Douglas Gregor
9f306d1b18 Move the extern symbol declarations outside of
DynamicLibrary::SearchForAddressOfSymbol and force them to have "C"
linkage. 

Interestingly, GCC treats the block-scoped "extern" declarations we
previously had as if they were extern "C" declarations (or, at least,
were in the global namespace), so that GCC bug papered over this LLVM
bug. Clang and EDG get the linkage correct; this new variant seems to
work for both GCC and Clang.

llvm-svn: 92020
2009-12-23 18:56:27 +00:00
Nuno Lopes
6abe311a0f move a few more symbols to .rodata
llvm-svn: 92011
2009-12-23 17:48:10 +00:00
Douglas Gregor
37e54f9d4d De-bork CMake build
llvm-svn: 92003
2009-12-23 17:03:46 +00:00
David Greene
3f7cf289ed Provide dbgs(), a circular-buffering debug output stream. By default it
simply passes output to errs().  If -debug-buffer-size=N is set N > 0,
dbgs() buffers its output until program termination and dumps the last N
characters sent to it.  This is handy when debugging very large inputs.

llvm-svn: 92002
2009-12-23 16:39:06 +00:00
David Greene
f1f78a15e1 Add circular_raw_ostream, which buffers its output in a circular queue
and outputs it when explicitly flushed.  The intent is to use it in
situations such as debug output logging where a signal handler can take
care of flushing the buffer at program termination.

llvm-svn: 92001
2009-12-23 16:08:15 +00:00
Sanjiv Gupta
7872817f59 Reapply 91904.
llvm-svn: 91996
2009-12-23 11:19:09 +00:00
Sanjiv Gupta
1d6f359867 Added missing patterns for subtract instruction.
llvm-svn: 91995
2009-12-23 10:56:02 +00:00
Sanjiv Gupta
70e1523215 Reverting back 91904.
llvm-svn: 91993
2009-12-23 09:46:01 +00:00
Dale Johannesen
b4485fd8a9 Use more sensible type for flags in asms. PR 5570.
Patch by Sylve`re Teissier (sorry, ASCII only).

llvm-svn: 91988
2009-12-23 07:32:51 +00:00
Eric Christopher
ce677a909d Update objectsize intrinsic and associated dependencies. Fix
lowering code and update testcases.

llvm-svn: 91979
2009-12-23 02:51:48 +00:00
Chris Lattner
f77ca5f9f5 really remove the instruction, don't just comment it out
llvm-svn: 91976
2009-12-23 01:46:40 +00:00
Chris Lattner
d7e8bd73fe completely eliminate the MOV16r0 'instruction'. The only
interesting part of this is the divrem changes, which are
already tested by CodeGen/X86/divrem.ll.

llvm-svn: 91975
2009-12-23 01:45:04 +00:00
Sean Callanan
0c1d56a0c8 More fixes for Visual C++. Replaced several very small
static inline functions with macros.

llvm-svn: 91973
2009-12-23 01:32:29 +00:00
Chris Lattner
dbcf2725aa stop pattern matching 16-bit zero's of a register to MOV16r0,
instead use the appropriate subreggy thing.  This generates identical
code on some large apps (thanks to Evan's cross class coalescing
stuff he did back in july).  This means that MOV16r0 can go away
completely in the future soon.

llvm-svn: 91972
2009-12-23 01:30:26 +00:00
Bill Wendling
ce8aa5aab2 Remove superfluous SDNode ordering.
llvm-svn: 91971
2009-12-23 01:28:19 +00:00
Bill Wendling
e7107691df Remove node ordering from inline asm nodes. It's not needed.
llvm-svn: 91961
2009-12-23 00:47:20 +00:00
Bill Wendling
d5577d5bdc Remove node ordering from VA nodes. It's not needed.
llvm-svn: 91958
2009-12-23 00:44:51 +00:00
Bill Wendling
3154bbba16 Revert r91949 r91942 and r91936.
llvm-svn: 91953
2009-12-23 00:28:23 +00:00
Bill Wendling
d38b774149 Finish up node ordering in ExpandNode.
llvm-svn: 91949
2009-12-23 00:05:09 +00:00
Jakob Stoklund Olesen
c971898a40 Add coalescer asserts.
llvm-svn: 91945
2009-12-22 23:54:54 +00:00
Jakob Stoklund Olesen
9d1c8ecf05 Add a SPR register class to the ARM target.
Certain Thumb instructions require only SP (e.g. tSTRspi).

llvm-svn: 91944
2009-12-22 23:54:44 +00:00
Jeffrey Yasskin
0c46d96fd0 Partially revert r91626. Materializing extra functions to determine whether
they're available_externally broke VMKit, which was relying on the fact that
functions would only be materialized when they were first called.  We'll have
to wait for http://llvm.org/PR5737 to really fix this.

I also added a test for one of the F->isDeclaration() calls which wasn't
covered by anything else in the test suite.

llvm-svn: 91943
2009-12-22 23:47:23 +00:00
Bill Wendling
68e8f657a2 Assign ordering to nodes created in ExpandNode. Only roughly 1/2 of the function
is finished.

llvm-svn: 91942
2009-12-22 23:44:56 +00:00
Jeffrey Yasskin
412172866e Fix a crash in JIT::recompileAndRelinkFunction(). It doesn't pass the MCI
argument to runJITOnFunction(), which caused a null pointer dereference at
every call.

Patch by Gianluca Guida!

llvm-svn: 91939
2009-12-22 23:18:18 +00:00
Bill Wendling
12c3fc9d60 Assign ordering to SDNodes in PromoteNode. Also fixing a subtle bug where BSWAP
was using "Tmp1" in the first getNode call instead of Node->getOperand(0).

llvm-svn: 91936
2009-12-22 22:53:39 +00:00
Sean Callanan
3ccfaafab6 Removed the "inline" keyword from the disassembler decoder,
because the Visual C++ build does not build .c files as C99

llvm-svn: 91935
2009-12-22 22:51:40 +00:00
Jakob Stoklund Olesen
47b4d6387f Remove minimal CFG sanity checks from verifier.
These checks would often trigger on unreachable statements inserted by
bugpoint, leading it astray.

It would be nice if we could distinguish unreachable blocks from errors.

llvm-svn: 91923
2009-12-22 21:52:27 +00:00
Jakob Stoklund Olesen
d9cec1fbf7 Allow explicit %reg0 operands beyond what the .td file describes.
ARM uses these to indicate predicates.

llvm-svn: 91922
2009-12-22 21:48:20 +00:00
Bill Wendling
237cb134ed Allow 0 as an order number. Don't assign an order to formal arguments.
llvm-svn: 91920
2009-12-22 21:35:02 +00:00
Sean Callanan
983f906451 Fixes to the X86 disassembler:
Made LEA memory operands emit only 4 MCInst operands.
Made the scale operand equal 1 for instructions that have no
SIB byte.

llvm-svn: 91919
2009-12-22 21:12:55 +00:00
Chris Lattner
4a7bce50b8 Fix the Convert to scalar to not insert dead loads in the store case. The
load is needed when we have a small store into a large alloca (at which 
point we get a load/insert/store sequence), but when you do a full-sized
store, this load ends up being dead.

This dead load is bad in really large nasty testcases where the load ends
up causing mem2reg to insert large chains of dependent phi nodes which only
ADCE can delete.  Instead of doing this, just don't insert the dead load.

This fixes rdar://6864035

llvm-svn: 91917
2009-12-22 19:33:28 +00:00
Chris Lattner
0fbb62fcc5 fix some fixme's by using twines
llvm-svn: 91916
2009-12-22 19:23:33 +00:00
Jakob Stoklund Olesen
affe25dbaf Use proper move instructions. Make the verifier happy.
llvm-svn: 91914
2009-12-22 18:49:55 +00:00
Bob Wilson
c19003bca7 Report an error for bad inline assembly, where the value passed for an
"indirect" operand is not a pointer.

llvm-svn: 91913
2009-12-22 18:34:19 +00:00
Evan Cheng
7cd6bfe549 Remove target attribute break-sse-dep. Instead, do not fold load into sse partial update instructions unless optimizing for size.
llvm-svn: 91910
2009-12-22 17:47:23 +00:00
Douglas Gregor
0590ad1884 Include based on the current path, since we already -I the X86 target's path. Fixes CMake build
llvm-svn: 91908
2009-12-22 17:25:11 +00:00
Sanjiv Gupta
9581b4dc62 While converting one of the operands to a memory operand, we need to check if it is Legal and does not result into a cyclic dep.
llvm-svn: 91904
2009-12-22 14:25:37 +00:00
Bob Wilson
0dc93264b1 Generalize SROA to allow the first index of a GEP to be non-zero. Add a
missing check that an array reference doesn't go past the end of the array,
and remove some redundant checks for in-bound array and vector references
that are no longer needed.

llvm-svn: 91897
2009-12-22 06:57:14 +00:00