Chris Lattner
4275cf2efa
use an accessor instead of poking internals of a node.
...
llvm-svn: 80532
2009-08-31 02:24:20 +00:00
Oscar Fuentes
c6db3ee94b
CMake: updated library dependencies.
...
llvm-svn: 80531
2009-08-31 01:58:50 +00:00
Jim Grosbach
ce713134b8
PR4747
...
Shared landing pads run into trouble with SJLJ, as the dispatch table is
mapped to call sites, and merging the pads will throw that off. There needs
to be a one-to-one mapping of landing pad exception table entries to invoke
call points.
Detecting the shared pad during lowering of SJLJ info insn't sufficient, as
the dispatch function may still need separate destinations to properly
handle phi-nodes.
llvm-svn: 80530
2009-08-31 01:35:03 +00:00
Chris Lattner
b1c3df239d
update unit test for previous change.
...
llvm-svn: 80528
2009-08-31 00:28:46 +00:00
Chris Lattner
305b115a87
Fix some nasty callgraph dangling pointer problems in
...
argpromotion and structretpromote. Basically, when replacing
a function, they used the 'changeFunction' api which changes
the entry in the function map (and steals/reuses the callgraph
node).
This has some interesting effects: first, the problem is that it doesn't
update the "callee" edges in any callees of the function in the call graph.
Second, this covers for a major problem in all the CGSCC pass stuff, which
is that it is completely broken when functions are deleted if they *don't*
reuse a CGN. (there is a cute little fixme about this though :).
This patch changes the protocol that CGSCC passes must obey: now the CGSCC
pass manager copies the SCC and preincrements its iterator to avoid passes
invalidating it. This allows CGSCC passes to mutate the current SCC. However
multiple passes may be run on that SCC, so if passes do this, they are now
required to *update* the SCC to be current when they return.
Other less interesting parts of this patch are that it makes passes update
the CG more directly, eliminates changeFunction, and requires clients of
replaceCallSite to specify the new callee CGN if they are changing it.
llvm-svn: 80527
2009-08-31 00:19:58 +00:00
Erick Tryzelaar
a64b1c1d4c
Fix header comment for bindings/ocaml/llvm/Makefile.
...
llvm-svn: 80526
2009-08-30 23:41:20 +00:00
Erick Tryzelaar
f34cb0cab4
Make sure we specify no arguments for context functions.
...
llvm-svn: 80525
2009-08-30 23:38:06 +00:00
Chris Lattner
69349a55e7
add a dump() method on callgraph.
...
llvm-svn: 80524
2009-08-30 22:24:32 +00:00
Chris Lattner
394b95c005
rename test
...
llvm-svn: 80523
2009-08-30 22:14:17 +00:00
Chris Lattner
71d51a2d79
merge all sinking tests into one and convert them to filecheck.
...
llvm-svn: 80522
2009-08-30 22:13:26 +00:00
Chris Lattner
362654f51c
convert scalar_promote to filecheck style and merge 2003-12-13-VolatilePromote.ll into it.
...
llvm-svn: 80521
2009-08-30 22:08:19 +00:00
Chris Lattner
b284f7b1d9
eliminate some uses of prcontext. Any help here would be appreciated :)
...
llvm-svn: 80520
2009-08-30 21:45:23 +00:00
Chris Lattner
2d3e0a35bd
rename test so that name reflects what it is testing for.
...
llvm-svn: 80519
2009-08-30 21:36:39 +00:00
Chris Lattner
c7d5796af8
convert to filecheck format.
...
llvm-svn: 80518
2009-08-30 21:36:06 +00:00
Chris Lattner
9e371f4b8b
suck a bunch more gep tests into getelementptr.ll and filecheckize them all.
...
llvm-svn: 80517
2009-08-30 21:31:34 +00:00
Daniel Dunbar
60745fe8e6
Tweak comment.
...
llvm-svn: 80516
2009-08-30 21:14:05 +00:00
Daniel Dunbar
bf75ffd1e2
Fix some possible-use-of-uninitialized warnings.
...
llvm-svn: 80515
2009-08-30 21:13:58 +00:00
Chris Lattner
89a9bb77e2
consolodate various GEP tests into getelementptr.ll using filecheck.
...
llvm-svn: 80514
2009-08-30 21:02:36 +00:00
Chris Lattner
2708a312db
another huge testcase, this time from 'gs' in llvm-test.
...
llvm-svn: 80513
2009-08-30 21:02:02 +00:00
Chris Lattner
3e1b67f62f
remove another poorly-reduced testcase which came from ldecod in llvm-test.
...
llvm-svn: 80512
2009-08-30 21:01:14 +00:00
Chris Lattner
8a2905e132
this testcase is 500 lines long and is distilled from bzip2, just
...
remove it.
llvm-svn: 80511
2009-08-30 21:00:11 +00:00
Chris Lattner
4698e19cba
convert to filecheck
...
llvm-svn: 80510
2009-08-30 20:48:15 +00:00
Chris Lattner
73913f4cd3
Fix PR4748: don't fold gep(bitcast(x)) into bitcast(gep) when x
...
is itself a bitcast. Since we have gep(bitcast(bitcast(y))) in this
case, just wait for the two bitcasts to get zapped. This prevents
instcombine from confusing some aliasing stuff, and allows it to
directly eliminate the load in the testcase.
llvm-svn: 80508
2009-08-30 20:38:21 +00:00
Chris Lattner
c2f2cf896e
misc cleanup
...
llvm-svn: 80507
2009-08-30 20:36:46 +00:00
Chris Lattner
a3e620caba
add getPointerAddressSpace() to GEP instruction, use the method
...
in a few scalar xforms to simplify things.
llvm-svn: 80506
2009-08-30 20:06:40 +00:00
Chris Lattner
c856539edf
eliminate InsertCastBefore, use the builder instead.
...
llvm-svn: 80505
2009-08-30 20:01:10 +00:00
Chris Lattner
606da5fed8
eliminate InsertBitCastBefore, just use the builder instead.
...
llvm-svn: 80504
2009-08-30 19:47:22 +00:00
Chris Lattner
ce3b538a7b
add a "getPointerAddressSpace" helper method to LoadInst and StoreInst.
...
llvm-svn: 80503
2009-08-30 19:45:21 +00:00
Anton Korobeynikov
3681144bd8
Add missed pattern
...
llvm-svn: 80502
2009-08-30 19:06:39 +00:00
Chris Lattner
5966341a2e
convert a bunch more calls to InsertNewInstBefore to use
...
the new Instcombine builder.
llvm-svn: 80501
2009-08-30 18:50:58 +00:00
Chris Lattner
8326d529da
fix typo
...
llvm-svn: 80500
2009-08-30 17:53:59 +00:00
Chris Lattner
947365f73f
hopefully unbreak the build by making this-> explicit for dependent
...
base class lookup.
llvm-svn: 80499
2009-08-30 17:44:10 +00:00
Anton Korobeynikov
eab572a8ff
EXTRACT_VECTOR_ELEMENT can have result type different from element type.
...
Remove the assertion and generalize the code for ARM NEON stuff.
llvm-svn: 80498
2009-08-30 17:14:54 +00:00
Torok Edwin
e14d4cdb5f
Add regular expression matching support, based on OpenBSD regexec()/regcomp()
...
implementation.
llvm-svn: 80493
2009-08-30 08:24:09 +00:00
Chris Lattner
022a582de2
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
03686805e8
Update test.
...
llvm-svn: 80490
2009-08-30 07:01:09 +00:00
Chris Lattner
a0c89ee1da
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
bacd05c2eb
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
795bfdbb55
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
6e8b1a2530
llvm-mc/X86: Encode constant MCValue's correctly.
...
llvm-svn: 80485
2009-08-30 06:17:49 +00:00
Daniel Dunbar
6a715dccdf
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
905976b1db
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
93ad6170fd
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
97fd3599e1
refactor instcombine's worklist processing stuff out to its own class.
...
llvm-svn: 80481
2009-08-30 05:55:36 +00:00
Chris Lattner
e08503cd28
make DenseMap::clear() early exit if there is nothing to do.
...
llvm-svn: 80480
2009-08-30 05:55:04 +00:00
Chris Lattner
520bd0e689
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
b2995e1eb1
more cleanups: remove some redundant code, and simplify some
...
other places.
llvm-svn: 80478
2009-08-30 05:30:55 +00:00
Chris Lattner
06c687b59e
eliminate the temporary SrcGEPOperands smallvector.
...
llvm-svn: 80477
2009-08-30 05:08:50 +00:00
Chris Lattner
e26bf17423
simplify/detangle some control flow.
...
llvm-svn: 80476
2009-08-30 05:00:50 +00:00
Chris Lattner
d7b6e913fe
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
65c6a85cfd
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
dc09af3ef5
Nuke moribund "std::string" version of EOL(..., Encoding).
...
llvm-svn: 80466
2009-08-30 00:28:57 +00:00
Dan Gohman
0dfe73ac9e
Remove an unnecessary Context argument.
...
llvm-svn: 80454
2009-08-29 23:39:38 +00:00
Dan Gohman
399d6ae4f7
Minor logic simplification.
...
llvm-svn: 80453
2009-08-29 23:37:49 +00:00
Dan Gohman
311d06902a
Add some comments.
...
llvm-svn: 80452
2009-08-29 23:36:57 +00:00
Dan Gohman
062d378603
Cleanup whitespace and indentation.
...
llvm-svn: 80451
2009-08-29 23:35:16 +00:00
Dan Gohman
07d0a55a9b
Remove some unused fields.
...
llvm-svn: 80450
2009-08-29 23:34:14 +00:00
Dan Gohman
ca73326f56
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
b83f691931
Inline empty destructor.
...
llvm-svn: 80431
2009-08-29 13:38:21 +00:00
Bill Wendling
06a6057bbe
Fix warning about non-virtual destructor.
...
llvm-svn: 80429
2009-08-29 12:31:38 +00:00
Bill Wendling
39bb29f7fe
- 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
f8b28e4327
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
57b946c94b
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
743dc0ef40
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
9e955171ca
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
7cb103dc8b
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
ece642a54c
Do not assert on too wide splats we don't support.
...
llvm-svn: 80409
2009-08-29 00:08:18 +00:00
Anton Korobeynikov
cd41d07f29
Add missed extract_element pattern
...
llvm-svn: 80408
2009-08-28 23:41:26 +00:00
Devang Patel
80ae34974b
Reapply 79977.
...
Use MDNodes to encode debug info in llvm IR.
llvm-svn: 80406
2009-08-28 23:24:31 +00:00
Evan Cheng
43b9ca6f42
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
d517ac0682
Nuke trailing whitespace.
...
llvm-svn: 80401
2009-08-28 22:33:43 +00:00
Daniel Dunbar
8d799c5144
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
7026421d61
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
d70eebee51
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
f43ab91486
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
e8a5863c3f
rm needs -f
...
llvm-svn: 80363
2009-08-28 14:05:07 +00:00
Torok Edwin
483691a185
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
991beb9aaf
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
ed3a6bedca
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
d8e04ab883
Removed unnecessary file creation during test.
...
llvm-svn: 80356
2009-08-28 10:07:41 +00:00
Andreas Neustifter
52afe22566
Pulled all tests into one test. Removed some redundant tests. Rename.
...
llvm-svn: 80355
2009-08-28 10:00:28 +00:00
Daniel Dunbar
3033db2448
Fix -Asserts warning, round two.
...
llvm-svn: 80354
2009-08-28 08:08:22 +00:00
Daniel Dunbar
2a2459a291
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
2701eee0ad
llvm-mc: Support .comm emission.
...
llvm-svn: 80351
2009-08-28 07:08:35 +00:00
Evan Cheng
4047b53a40
Print a nl before pic labels so they start at a new line. This makes assembly more readable.
...
llvm-svn: 80350
2009-08-28 06:59:37 +00:00
Andreas Neustifter
5155fc1b69
Since all std::cout is gone, also remove iostream include.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085620.html )
llvm-svn: 80349
2009-08-28 06:48:25 +00:00
Andreas Neustifter
d7f3569555
Readded test from r79615, this tests the complete profiling tool chain. Furhter
...
tests can test only parts of this system.
llvm-svn: 80348
2009-08-28 06:41:00 +00:00
Daniel Dunbar
42a39d038a
llvm-mc: Support .zerofill emission.
...
- I'm still trying to figure out the cleanest way to implement this and match the assembler, currently there are some substantial differences.
llvm-svn: 80347
2009-08-28 05:49:21 +00:00
Daniel Dunbar
a468a12dfa
llvm-mc: Tweak section alignment and size computation to match 'as' closer.
...
llvm-svn: 80345
2009-08-28 05:49:04 +00:00
Daniel Dunbar
d82ef0e923
llvm-mc: Factor getSectionData out of SwitchSection.
...
llvm-svn: 80344
2009-08-28 05:48:54 +00:00
Daniel Dunbar
96abad185d
llvm-mc: Emit .lcomm as .zerofill.
...
llvm-svn: 80343
2009-08-28 05:48:46 +00:00
Daniel Dunbar
e48a69b2a3
llvm-mc: Unique zero fill sections.
...
llvm-svn: 80342
2009-08-28 05:48:29 +00:00
Daniel Dunbar
cf72e1c03e
llvm-mc: Add const to EmitZeroFill section argument.
...
llvm-svn: 80341
2009-08-28 05:48:22 +00:00
Daniel Dunbar
93665faad0
llvm-mc: Fix thinko in emitting values.
...
llvm-svn: 80340
2009-08-28 05:48:10 +00:00
Daniel Dunbar
4b07ea1902
Add MathExtras.h OffsetToAlignment, like RoundUpToAlignment but returns the
...
offset to the next aligned integer.
llvm-svn: 80339
2009-08-28 05:48:04 +00:00
Daniel Dunbar
d46e3466e7
Fix -Asserts warning.
...
llvm-svn: 80338
2009-08-28 05:47:56 +00:00
Chris Lattner
0e8901803c
finish a half formed thought :)
...
llvm-svn: 80334
2009-08-28 04:48:54 +00:00
Daniel Dunbar
2ece038e6e
Another NO_RUNTIME_LIBRARIES tweak...
...
llvm-svn: 80331
2009-08-28 03:06:28 +00:00
Daniel Dunbar
e45cdcdca2
Tweak NO_RUNTIME_LIBS.
...
llvm-svn: 80330
2009-08-28 02:20:39 +00:00
Chris Lattner
51a25b06f7
Mark Andersen's as experimental.
...
llvm-svn: 80328
2009-08-28 00:45:47 +00:00