Anton Korobeynikov
62e84f177d
Add nodes & dummy matchers for some v{zip,uzp,trn} instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79622 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 12:40:50 +00:00
Anton Korobeynikov
8e6c2b9041
Expand EXTRACT_SUBVECTOR
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79621 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 12:40:35 +00:00
Anton Korobeynikov
5da894f5c4
Provide vext.{16,32}
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79620 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 12:40:21 +00:00
Anton Korobeynikov
d0ac234b1b
Use masks not nodes for vector shuffle predicates. Provide set of 'legal' masks, so legalizer won't infinite cycle
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79619 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 12:40:07 +00:00
Benjamin Kramer
71b9732ef6
Update CMakeLists.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79617 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 11:28:56 +00:00
Richard Pennington
a32b183918
bug 4530: Make debug information static to it is preservered during bitcode linking.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79616 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 11:10:31 +00:00
Daniel Dunbar
fb4a6b3976
llvm-mc: Start MCAssembler and MCMachOStreamer.
...
- Together these form the (Mach-O) back end of the assembler.
- MCAssembler is the actual assembler backend, which is designed to have a
reasonable API. This will eventually grow to support multiple object file
implementations, but for now its Mach-O/i386 only.
- MCMachOStreamer adapts the MCStreamer "actions" API to the MCAssembler API,
e.g. converting the various directives into fragments, managing state like
the current section, and so on.
- llvm-mc will use the new backend via '-filetype=obj', which may eventually
be, but is not yet, since I hear that people like assemblers which actually
assemble.
- The only thing that works at the moment is changing sections. For the time
being I have a Python Mach-O dumping tool in test/scripts so this stuff can
be easily tested, eventually I expect to replace this with a real LLVM tool.
- More doxyments to come.
I assume that since this stuff doesn't touch any of the things which are part of
2.6 that it is ok to put this in not so long before the freeze, but if someone
objects let me know, I can pull it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79612 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 09:11:24 +00:00
Bill Wendling
9d7a8cc57e
Remove #include <iostream>.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79603 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 06:52:44 +00:00
Erick Tryzelaar
56c39eb232
Clean up the APInt function getDigit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79602 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 06:48:37 +00:00
Eric Christopher
e250f2a5ee
Update error messages for '+'. Fix grammar and make the two
...
negative checks resemble each other.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79595 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 04:10:31 +00:00
Eric Christopher
d37eda8c1d
Fix trailing whitespace and 80-col violation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79594 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 04:06:45 +00:00
Erick Tryzelaar
ae8f78d4de
Fix bug with APInt::getBitsNeeded with for base 10 numbers 0-9.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79593 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 03:15:28 +00:00
Erick Tryzelaar
bb97531a5a
Allow '+' to appear in APInt strings, and add more unit tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79592 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 03:15:14 +00:00
Bob Wilson
d4b4cf524b
Remove Neon intrinsics for VZIP, VUZP, and VTRN. We will represent these as
...
vector shuffles. Temporarily remove the tests for these operations until the
new implementation is working.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79579 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 00:01:42 +00:00
Owen Anderson
2ea20154ce
Re-revert r79555. Apparently it's not just buildbot weirdness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79578 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 23:51:44 +00:00
Erick Tryzelaar
c78b33bdc1
Add support for including '+' in APFloat strings, more asserts,
...
and many new unit tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79574 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 23:30:43 +00:00
Owen Anderson
28998d1806
Reapply r79555 for testing. Daniel's trying to work out some buildbot weirdnesss.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79572 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 23:14:20 +00:00
Bill Wendling
607abd262e
--- Reverse-merging r79555 into '.':
...
U include/llvm/Target/TargetData.h
U lib/Target/TargetData.cpp
Temporarily revert 79555. It was causing hangs and test failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79568 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 22:04:42 +00:00
Bill Wendling
a583c55864
Attempt to comment this code more.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79567 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 22:02:24 +00:00
Daniel Dunbar
bc84ad95b7
Suppress build warning in -Asserts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79564 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 20:01:34 +00:00
Sanjiv Gupta
89bc0a213d
part of the previous commit for PIC16 ISR implementation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79563 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 19:34:18 +00:00
Sanjiv Gupta
eb01abaad1
Implement support for ISRs.
...
Clone functions that are shared between the Main thread and Interrupt thread.
CallSites are changed in AsmPrinter currently. A better solution would have been to modify the legalizer (SoftenFloat) to allow targets to change the name of libcalls for float operations. But that currently breaks other targets.
Also, cloing of automatic variables is done AsmPrinter, a better approach would
be to use the ValueMap in CloneFunction itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79562 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 19:28:24 +00:00
Owen Anderson
72689b4094
Reduce contention on the Attributes lock by using atomic operations for reference counting rather than locking.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79560 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 19:03:20 +00:00
Owen Anderson
d9b207122e
Make the StructType->StructLayout table private to TargetData, allowing us to avoid locking on it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79555 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 18:26:03 +00:00
Sean Callanan
47234e6d38
Fixed PCMPESTRM128 to have opcode 0x60 instead of 0x62, as specified by the
...
Intel documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79554 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 18:24:27 +00:00
Dan Gohman
ef74e9bf2a
Fix an x86 code size regression: prefer RIP-relative addressing
...
over absolute addressing even in non-PIC mode (unless the address
has an index or something else incompatible), because it has a
smaller encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79553 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 18:23:44 +00:00
Dan Gohman
073f5b669d
Add a comment explaining why llvm_unreachable_internal doesn't call
...
the ErrorHandler callback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79541 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 17:15:19 +00:00
Daniel Dunbar
cdd93d8c35
Fix two APFloat bugs in converting hexadecimal constants.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79540 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 17:12:33 +00:00
Dan Gohman
5078f84c82
Rename hasNoUnsignedOverflow and hasNoSignedOverflow to hasNoUnsignedWrap
...
and hasNoSignedWrap, for consistency with the nuw and nsw properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79539 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 17:11:38 +00:00
Evan Cheng
89d177f017
Fix an obvious copy-n-paste bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79535 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 17:01:04 +00:00
Dan Gohman
4c0d5d5db8
Various comment and whitespace cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79533 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 16:42:55 +00:00
Dan Gohman
d35626e8bb
Update and fix some comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79532 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 16:27:10 +00:00
Jim Grosbach
8fc3b6903a
Check for shared landing pads when assigning call site values. Invokes which
...
share a landing pad should also use the same call site value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79501 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 01:03:48 +00:00
Dale Johannesen
231843ed16
Add an extra line to conform with preferred style.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79495 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 23:44:01 +00:00
Reid Kleckner
ce4eb39bb4
Modify an assert to avoid what looks like a GCC 4.2.4 signed-ness bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79494 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 23:39:59 +00:00
Dan Gohman
5e9bb73de6
Fix a few places to check if TargetData is available before using it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79493 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 23:38:22 +00:00
Daniel Dunbar
5149932068
Add a fast path for setName("") on an unnamed value.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79492 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 23:37:23 +00:00
Owen Anderson
517d811f6b
AttrListPtr operations need to be atomic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79486 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:58:34 +00:00
Dan Gohman
3d01334e6f
Fix a bug in the over-index constant folding. When over-indexing an
...
array member of a struct, it's possible to land in an arbitrary position
inside that struct, such that attempting to find further getelementptr
indices will fail. In such cases, folding cannot be done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79485 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:46:59 +00:00
Dale Johannesen
7bcec7e541
Handle 'a' modifier in X86 asms. PR 4742.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79484 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:44:41 +00:00
Reid Kleckner
781c2b8c49
Fixed error in CPPBackend from a contextification API change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79483 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:38:37 +00:00
David Greene
5f3aeac9a7
Add missing forward declaration.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79481 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:19:44 +00:00
David Greene
098612b0e8
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79480 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:16:11 +00:00
David Greene
43c76fbba2
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79479 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:08:26 +00:00
David Greene
2a711e36da
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79478 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:05:21 +00:00
David Greene
0d036d2e81
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79476 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:02:07 +00:00
David Greene
eea1f4cdb7
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79475 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 21:59:18 +00:00
David Greene
fc4da0cea8
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79474 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 21:55:33 +00:00
David Greene
b2c66fc322
Add missing includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79473 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 21:52:55 +00:00
Owen Anderson
0d1ea255d9
Get rid of a helgrind warning. If this is _actually_ a performance problem,
...
we can find a way to cache the answer that isn't racy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79472 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 21:48:34 +00:00
Eli Friedman
74db89e30f
Add triple parsing support for TCE.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79461 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 20:46:03 +00:00
Daniel Dunbar
dddfd34e32
Switch to SmallString::str from SmallString::c_str, and remove
...
SmallString::c_str.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79456 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 20:07:03 +00:00
Daniel Dunbar
29c142077e
Change ValueSymbolTable to use raw_svector_ostream for string concatenation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79449 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 19:22:52 +00:00
Daniel Dunbar
d14787e497
Change raw_svector_ostream to reserve the input buffer if necessary, Ted was
...
right.
- This class turns out to be much more convenient to use if we do this; clients
can make sure the buffer is always big enough if they care (since our current
idiom tends to be to use a SmallString<256> for the input to this we should
generally be avoiding an unnecessary malloc).
Also, add a convenience raw_svector_ostream::str method which flushes the buffer
and returns a StringRef for the vector contents.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79446 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 18:40:58 +00:00
Dan Gohman
6bd4aca29f
Remove temporary testing code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79443 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 18:27:08 +00:00
Dan Gohman
e4af1cf402
Make SROA and PredicateSimplifier cope if TargetData is not
...
available. This is very conservative for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79442 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 18:22:18 +00:00
Dan Gohman
8255573835
Use hasDefinitiveInitializer() instead of testing the same thing
...
by hand, and fix a few places that were using hasInitializer() that
appear to depend on the initializer value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79441 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 18:20:44 +00:00
Dan Gohman
de0e587e63
Canonicalize indices in a constantexpr GEP. If Indices exceed the
...
static extents of the static array type, it causes GlobalOpt and
other passes to be more conservative. This canonicalization also
allows the constant folder to add "inbounds" to GEPs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79440 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 18:18:36 +00:00
Dan Gohman
6a402dc952
Add an x86 peep that narrows TEST instructions to forms that use
...
a smaller encoding. These kinds of patterns are very frequent in
sqlite3, for example.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79439 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 18:16:17 +00:00
Daniel Dunbar
b7be0e8afc
Switch Twine::str() to use toVector(), which is now efficient.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79437 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 18:09:47 +00:00
David Goodwin
5d598aaf3d
Update Cortex-A8 instruction itineraries for integer instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79436 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 18:00:44 +00:00
Daniel Dunbar
425d08c654
Switch raw_svector_ostream to use the vector as the ostream buffer.
...
- This avoids unnecessary malloc/free overhead in the common case, and
unnecessary copying from the ostream buffer into the output vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79434 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 17:54:29 +00:00
Owen Anderson
c34ebf65af
Reapply my less-lock-contention-in-leak-detector patch, now with new files
...
actually added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79429 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 17:07:46 +00:00
Bob Wilson
de95c1b88b
Add support for Neon VEXT (vector extract) shuffles.
...
This is derived from a patch by Anton Korzh. I modified it to recognize
the VEXT shuffles during legalization and lower them to a target-specific
DAG node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79428 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 17:03:43 +00:00
Daniel Dunbar
ecbd0bc478
Speculatively revert r79375, which may be breaking bootstrap, although in a
...
rather obscure way (the other candidate is r79377).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79426 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 16:25:25 +00:00
David Goodwin
dc4bdcdef1
Use the schedule itinerary operand use/def cycle information to adjust dependence edge latency for post-RA scheduling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79425 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 16:08:58 +00:00
Eli Friedman
d68eea2b6d
PR4737: Fix a nasty bug in load narrowing with non-power-of-two types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79415 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 08:46:10 +00:00
Nick Lewycky
08368ce984
Fix up PHI nodes correctly in the presence of unreachable BBs, part two. Also
...
delete a newed pointer, and improve readability a little bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79411 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 07:16:57 +00:00
Chris Lattner
6e579c6727
fix asmstreaming of 2/4 byte elements with pow-2 alignments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79408 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 06:35:36 +00:00
Nick Lewycky
3417e8f185
Be more careful when modifying PHI nodes. Patch by Andre Tavares.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79407 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 06:24:33 +00:00
Chris Lattner
663c2d2580
switch asmprinter to emit alignments through OutStreamer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 06:12:02 +00:00
Chris Lattner
6c2f9e14fd
eliminate AsmPrinter::SwitchToSection and just have clients
...
talk to the MCStreamer directly instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79405 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 05:49:37 +00:00
Andreas Neustifter
0a324aa53a
Broke line before break.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79404 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 05:44:39 +00:00
Daniel Dunbar
e476004b94
Make a SmallVector size more reasonable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79403 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 05:08:06 +00:00
Lang Hames
8481e3b368
Added an option to have the PBQP allocator attempt coalescing during allocation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79397 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 01:36:14 +00:00
Owen Anderson
021d664a38
Revert my last patch temporarily.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79388 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 00:52:13 +00:00
Owen Anderson
ba43a385a8
Privatize part of the leak detector mechanism, which turned out to be heavily contended
...
when trying to run opt in parallel. This lets parallel opt crunch 403.gcc in about a third
of the time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79387 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 00:37:02 +00:00
Daniel Dunbar
ecc67e2e1b
raw_ostream: Simplify write(unsigned char) to match write(const char*, unsigned).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79386 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 00:23:39 +00:00
Daniel Dunbar
d29d497b53
raw_ostream: Remove pointless redefinitions of tell().
...
- The base class implementation is correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79385 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 00:14:25 +00:00
Dan Gohman
107f41fad5
Fix SimplifyLibcalls and ValueTracking to check mayBeOverridden
...
before performing optimizations based on constant string values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79384 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 00:11:12 +00:00
Dan Gohman
2c9489d6e9
Be tidy and use a break to exit from a switch block rather than
...
just falling through the end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79383 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 23:52:48 +00:00
Daniel Dunbar
906d5b4455
raw_ostream: Add the capability for subclasses to manually install an external
...
buffer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79382 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 23:42:36 +00:00
Dan Gohman
db8dc2b9fa
Legalize the shift amount operand of SRL_PARTS, SHL_PARTS, and
...
SRA_PARTS, as is done for SRL, SHL, and SRA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79380 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 23:36:17 +00:00
Daniel Dunbar
ab81027544
raw_ostream: Reduce FormattedStream's reliance on raw_ostream's implementation.
...
- Kill off begin(), end(), and iterator. It isn't clear what these
mean. Instead provide getBufferStart(), which can be used with
GetNumBytesInBuffer to the same effect.
- Update ComputeColumn to take arguments for the buffer to scan, this
simplifies the implementation of write_impl substantially.
- This should also fix possible problems with the scanning pointer pointing
outside of the current raw_ostream buffer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79379 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 23:36:04 +00:00
Lang Hames
233fd9cea0
Changes DOUT references in the PBQP allocator to use DEBUG(errs() ...)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79378 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 23:34:50 +00:00
Eric Christopher
b120ab4057
Implement sse4.2 string/text processing instructions:
...
Add patterns and instruction encoding information.
Add custom lowering to deal with hardwired return register of
uncertain type (xmm0).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79377 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 22:50:32 +00:00
Daniel Dunbar
3b3de924f5
Speed up raw_ostream::<<(unsigned long long) for 32-bit systems by doing most
...
div/mods in 32-bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79375 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 22:24:00 +00:00
Jakob Stoklund Olesen
c0823fe7c6
Simplify RegScavenger::FindUnusedReg.
...
- Drop the Candidates argument and fix all callers. Now that RegScavenger
tracks available registers accurately, there is no need to restict the
search.
- Make sure that no aliases of the found register are in use. This was a potential bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79369 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 21:14:54 +00:00
Richard Osborne
1123135dbf
Add support for mergeable sections back into the XCore backend.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79368 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 21:14:31 +00:00
Dan Gohman
3731604f1f
Fix a bug in raw_ostream::write(char) introduced by the change to
...
allow underlying stream classes to decline buffering. After
calling SetBuffered(), re-check whether the stream is Unbuffered
in order to handle the case where the underlying stream has
declined buffering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79362 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 20:09:59 +00:00
Daniel Dunbar
35979c021e
Revert r78924, disabling buffering defeats all the fast paths in raw_ostream.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79361 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 20:07:36 +00:00
Daniel Dunbar
651aa689cc
Improve Triple to recognize the OS in i386-mingw32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79359 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 19:26:55 +00:00
David Greene
fe37ab335b
Make various changes suggested by Chris.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79358 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 19:22:55 +00:00
Owen Anderson
4d91943889
Privatize the ValueHandle global map. Because this is used so heavily throughout the code base, locking all accesses to
...
it is not practical performance-wise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79355 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 18:28:58 +00:00
Erick Tryzelaar
f8bc801c6c
Fix an uninitialized value warning in APFloat.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79353 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 18:20:37 +00:00
Richard Osborne
a9e8334877
Put data with relocations in the same sections as data without relocations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79351 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 17:58:17 +00:00
Chris Lattner
35c3531754
fix COFF targets (mingw/cygwin) to provide ehframe and LSDA sections
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 16:56:17 +00:00
Dan Gohman
c40f17b087
Generalize ScalarEvolution to be able to analyze GEPs when
...
TargetData is not present. It still uses TargetData when available.
This generalization also fixed some limitations in the TargetData
case; the attached testcase covers this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79344 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 16:46:41 +00:00
Chris Lattner
4d35fce60c
null streamer needs to maintain the current section as well.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79343 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 16:46:29 +00:00
Dan Gohman
da65822cfc
Make tail merging handle blocks with repeated predecessors correctly, and
...
remove RemoveDuplicateSuccessor, as it is no longer necessary, and because
it breaks assumptions made in
MachineBasicBlock::isOnlyReachableByFallthrough.
Convert test/CodeGen/X86/omit-label.ll to FileCheck and add a testcase
for PR4732.
test/CodeGen/Thumb2/thumb2-ifcvt2.ll sees a diff with this commit due to
it being bugpoint-reduced to the point where it doesn't matter what the
condition for the branch is.
Add some more interesting code to
test/CodeGen/X86/2009-08-06-branchfolder-crash.ll, which is the testcase
that originally motivated the RemoveDuplicateSuccessor code, to help
verify that the original problem isn't being re-broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79338 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 15:18:18 +00:00