1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-28 14:32:51 +01:00
Commit Graph

51173 Commits

Author SHA1 Message Date
Chris Lattner
dd71643cf1 give instcombine a custom IRBuilder that adds new instructions to the
workslist and is set to insert new instructions before the current one.
Convert a bunch of stuff that used to call InsertNewInstBefore over to
use it, greatly simplifying code and making it more natural.

There is still a lot more to go, but this is a good start.

llvm-svn: 80492
2009-08-30 07:44:24 +00:00
Daniel Dunbar
8cbbfb58e7 Update test.
llvm-svn: 80490
2009-08-30 07:01:09 +00:00
Chris Lattner
d53d314bd6 add a new InstCombineWorklist::AddValue method that works even
if the operand is not an instruction.

Simplify most uses of AddOperandsToWorkList to use AddValue and
inline it into the one remaining callsite.

llvm-svn: 80488
2009-08-30 06:27:41 +00:00
Chris Lattner
7dfc9cc68f move AddUsersToWorkList to the worklist processing class, make the
argument stronger typed.

llvm-svn: 80487
2009-08-30 06:22:51 +00:00
Chris Lattner
13202514e1 rename AddUsesToWorkList -> AddOperandsToWorkList. The
former looks too much like AddUsersToWorkList and keeps
confusing me.

Remove AddSoonDeadInstToWorklist and change its two callers
to do the same thing in a simpler way.

llvm-svn: 80486
2009-08-30 06:20:05 +00:00
Daniel Dunbar
21f3ac490c llvm-mc/X86: Encode constant MCValue's correctly.
llvm-svn: 80485
2009-08-30 06:17:49 +00:00
Daniel Dunbar
bc61205626 llvm-mc: MCStreamer cleanups. - Remove EmitLocalSymbol, this is unsupported for now.
- Switch Emit{CommonSymbol,Zerofill} to take alignment in bytes (for consistency).

llvm-svn: 80484
2009-08-30 06:17:16 +00:00
Chris Lattner
1f8e8caacb inline the trivial AddToWorkList/RemoveFromWorkList methods
into their callers.  simplify ReplaceInstUsesWith.  Make
EraseInstFromFunction only add operands to the worklist if
there aren't too many of them (this was a scalability win
for crazy programs that was only infrequently enforced).
Switch more code to using EraseInstFromFunction instead of
duplicating it inline.  Change some fcmp/icmp optimizations
to modify fcmp/icmp in place instead of creating a new one
and deleting the old one just to change the predicate.

llvm-svn: 80483
2009-08-30 06:13:40 +00:00
Chris Lattner
97d6443c26 fix a bug I introduced in r80478 found by the build bot.
llvm-svn: 80482
2009-08-30 05:56:44 +00:00
Chris Lattner
ca6875bf57 refactor instcombine's worklist processing stuff out to its own class.
llvm-svn: 80481
2009-08-30 05:55:36 +00:00
Chris Lattner
0ba5632cf6 make DenseMap::clear() early exit if there is nothing to do.
llvm-svn: 80480
2009-08-30 05:55:04 +00:00
Chris Lattner
c3deceaf81 some minor cleanups to IRBuilder, factor the insertion
hook out of the main IRBuilder class to allow clients to
override it.

llvm-svn: 80479
2009-08-30 05:42:59 +00:00
Chris Lattner
741fcee014 more cleanups: remove some redundant code, and simplify some
other places.

llvm-svn: 80478
2009-08-30 05:30:55 +00:00
Chris Lattner
aecf0100db eliminate the temporary SrcGEPOperands smallvector.
llvm-svn: 80477
2009-08-30 05:08:50 +00:00
Chris Lattner
2051889d14 simplify/detangle some control flow.
llvm-svn: 80476
2009-08-30 05:00:50 +00:00
Chris Lattner
e5c5ff8f49 simplify and cleanup some code, remove some code that just
does constant folding of gep's: this is already handled in
a more general way.

No functionality change.

llvm-svn: 80475
2009-08-30 04:49:01 +00:00
Chris Lattner
df2191a33d default count-aa to -print-all. The whole reason to use count-aa is
to see what queries are being made by a transformation, we might as well
default to printing them.

llvm-svn: 80474
2009-08-30 04:25:40 +00:00
Bill Wendling
ccb2d3a3b8 Nuke moribund "std::string" version of EOL(..., Encoding).
llvm-svn: 80466
2009-08-30 00:28:57 +00:00
Dan Gohman
cc35ffe3df Remove an unnecessary Context argument.
llvm-svn: 80454
2009-08-29 23:39:38 +00:00
Dan Gohman
4fef698b89 Minor logic simplification.
llvm-svn: 80453
2009-08-29 23:37:49 +00:00
Dan Gohman
c9dbe1610e Add some comments.
llvm-svn: 80452
2009-08-29 23:36:57 +00:00
Dan Gohman
e0697de4c6 Cleanup whitespace and indentation.
llvm-svn: 80451
2009-08-29 23:35:16 +00:00
Dan Gohman
e5f1c4a5c2 Remove some unused fields.
llvm-svn: 80450
2009-08-29 23:34:14 +00:00
Dan Gohman
f7b76078bb CMOV_GR8 clobbers EFLAGS when its expansion involves an xor to set
a register to 0. This fixes PR4814.

llvm-svn: 80445
2009-08-29 22:19:15 +00:00
Benjamin Kramer
34020d0ab5 Inline empty destructor.
llvm-svn: 80431
2009-08-29 13:38:21 +00:00
Bill Wendling
095b3c55e8 Fix warning about non-virtual destructor.
llvm-svn: 80429
2009-08-29 12:31:38 +00:00
Bill Wendling
9dddea2ec3 - Add target lowering methods to get the preferred format for the FDE and LSDA
encodings.
- Make some of the values emitted by the FDEs dependent upon the pointer
  size. This is in line with how GCC does things. And it has the benefit of
  working for Darwin in 64-bit mode now.

llvm-svn: 80428
2009-08-29 12:20:54 +00:00
Bill Wendling
08c68ad0a9 Add a form of EOL which emits the text version of a DWARF format encoding. This
doesn't handle all values of the formatting. Those can be added as needed.

llvm-svn: 80427
2009-08-29 12:17:53 +00:00
Bob Wilson
2cc9f2ac91 PR4795: Remove EEVT::isFP, isInt and isVec types used by TableGen's type
inferencing.  As far as I can tell, these are equivalent to the existing
MVT::fAny, iAny and vAny types, and having both of them makes it harder
to reason about and modify the type inferencing code.

The specific problem in PR4795 occurs when updating a vAny type to be fAny
or iAny, or vice versa.  Both iAny and fAny include vector types -- they
intersect with the set of types represented by vAny.  When merging them,
choose fAny/iAny to represent the intersection.  This is not perfect, since
fAny/iAny also include scalar types, but it is good enough for TableGen's
type inferencing.

llvm-svn: 80423
2009-08-29 05:53:25 +00:00
Eric Christopher
77fd01a639 Make the augmentation size and next set of bytes agree on size,
and make the reference pointer size as it should be.

Fixes an abort on a testcase derived from libunwind's personality
test in 64-bit.

llvm-svn: 80414
2009-08-29 01:12:46 +00:00
Jeffrey Yasskin
93ed558d9f Fix OProfile support after r80406 changed the DebugInfo interface from
GlobalVariables to MDNodes.

llvm-svn: 80411
2009-08-29 00:44:16 +00:00
David Goodwin
db0cb257be Another stab at fixing up register kill flags after post-RA scheduling.
llvm-svn: 80410
2009-08-29 00:11:13 +00:00
Anton Korobeynikov
b2e6f5eed4 Do not assert on too wide splats we don't support.
llvm-svn: 80409
2009-08-29 00:08:18 +00:00
Anton Korobeynikov
9fd6082c10 Add missed extract_element pattern
llvm-svn: 80408
2009-08-28 23:41:26 +00:00
Devang Patel
fbaeda732e Reapply 79977.
Use MDNodes to encode debug info in llvm IR.

llvm-svn: 80406
2009-08-28 23:24:31 +00:00
Evan Cheng
d7a07ab112 Let Darwin linker auto-synthesize stubs and lazy-pointers. This deletes a bunch of nasty code in ARM asm printer.
llvm-svn: 80404
2009-08-28 23:18:09 +00:00
Eric Christopher
f70a6035e0 Nuke trailing whitespace.
llvm-svn: 80401
2009-08-28 22:33:43 +00:00
Daniel Dunbar
09b42dc6f8 Fix creation of .bca libraries with EXPORTED_SYMBOLS_LIST, this was putting the
llvm-ld shell wrapper script in the archive, not the relinked object!

Also, rename the temp file to avoid conflicts.

llvm-svn: 80373
2009-08-28 16:14:46 +00:00
Andreas Neustifter
398f646dce Read Makefile.config before using LLVMGCC.
See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085828.html

llvm-svn: 80372
2009-08-28 16:13:45 +00:00
Torok Edwin
9524ef5cfa install-sh chmods to 0755 by default, and this causes 'git diff' to show
that all the Makefiles changed mode.
Fix this by tellint install-sh to chmod
only to 0644, these are not executable files after all!

llvm-svn: 80371
2009-08-28 16:12:48 +00:00
Anton Korobeynikov
8595d8549f Short-term workaround for frame-related weirdness on win64.
Some other minor win64 fixes as well.

Patch by Michael Beck!

llvm-svn: 80370
2009-08-28 16:06:41 +00:00
Torok Edwin
f1fbd8af64 rm needs -f
llvm-svn: 80363
2009-08-28 14:05:07 +00:00
Torok Edwin
b9c2b743ea Remove the llvmprof.out from the test output, otherwise running
make check in a non-clean directory causes it to fail (for example when running
make check twice), since execution counts will differ.

llvm-svn: 80362
2009-08-28 13:35:44 +00:00
Andreas Neustifter
c11b0d7108 Preparation for Optimal Edge Profiling:
This implements the maximum spanning tree algorithm on CFGs according to
weights given by the ProfileEstimator. This is then used to implement Optimal
Edge Profiling.

llvm-svn: 80358
2009-08-28 11:28:24 +00:00
Andreas Neustifter
c2d92270a2 Remove profiling output file because two consecutive runs of make check give
error.

llvm-svn: 80357
2009-08-28 10:38:26 +00:00
Andreas Neustifter
e4c8ff4447 Removed unnecessary file creation during test.
llvm-svn: 80356
2009-08-28 10:07:41 +00:00
Andreas Neustifter
da88343196 Pulled all tests into one test. Removed some redundant tests. Rename.
llvm-svn: 80355
2009-08-28 10:00:28 +00:00
Daniel Dunbar
0fa09bbe95 Fix -Asserts warning, round two.
llvm-svn: 80354
2009-08-28 08:08:22 +00:00
Daniel Dunbar
e3cf39c644 llvm-mc: .lsym is more unsupported than unimplemented, pending a use case appearing.
Also, all one of the file level flags are implemented.

llvm-svn: 80352
2009-08-28 07:08:47 +00:00
Daniel Dunbar
eec2764d55 llvm-mc: Support .comm emission.
llvm-svn: 80351
2009-08-28 07:08:35 +00:00