Bob Wilson
3348d2eb50
Remove NEON vmull, vmlal, and vmlsl intrinsics, replacing them with multiply,
...
add, and subtract operations with zero-extended or sign-extended vectors.
Update tests. Add auto-upgrade support for the old intrinsics.
llvm-svn: 112773
2010-09-01 23:50:19 +00:00
Dan Gohman
bc87387508
Reword this comment. Don't mention outs(), as that's not what
...
this code is actually testing for.
llvm-svn: 112767
2010-09-01 23:33:02 +00:00
Dale Johannesen
e7c3ecd9dd
Recommit with changes. Comment out palignr for the
...
moment, as there's a testcase that uses it and expects it
to be subject to optimizations; we won't be doing that.
Some adjustments based on feedback from Bill.
llvm-svn: 112754
2010-09-01 22:43:48 +00:00
Dale Johannesen
8f257c1f83
Revert 112740, it broke some clang tests somehow...
...
llvm-svn: 112744
2010-09-01 21:36:44 +00:00
Dale Johannesen
20877c9c79
Add a few more missing MMX operations. This should be it.
...
llvm-svn: 112740
2010-09-01 21:03:03 +00:00
Owen Anderson
ef4f527b13
Disable CorrelatedValuePropagation while I track down selfhost failures.
...
llvm-svn: 112727
2010-09-01 19:20:46 +00:00
Owen Anderson
0ee04fbdc8
Tentatively add correlated value propagation to the set of standard passes.
...
llvm-svn: 112723
2010-09-01 18:30:15 +00:00
Eric Christopher
f72b7040a2
Speculatively revert 112699 and 112702, they seem to be causing
...
self host errors on clang-x86-64.
llvm-svn: 112719
2010-09-01 17:29:10 +00:00
Dan Gohman
f9e09104f1
Make tool_output_file's raw_ostream instance a member variable instead
...
of a base class.
This makes it possible to unregister the file from FilesToRemove when
the file is done. Also, this eliminates the need for
formatted_tool_output_file.
llvm-svn: 112706
2010-09-01 14:20:41 +00:00
Dan Gohman
5f2118dd6f
Add an interface for unregistering a file from the FilesToRemove list.
...
llvm-svn: 112705
2010-09-01 14:17:34 +00:00
Michael J. Spencer
3363f79ebb
COFF: Fix incorrect SCT_COMPLEX_TYPE_SHIFT. Add a few constants.
...
llvm-svn: 112703
2010-09-01 14:09:36 +00:00
Dan Gohman
ace824be4a
Make the iterator form of erase return void, since it always succeeds,
...
and since this is what std::map and std::set do.
llvm-svn: 112701
2010-09-01 14:00:35 +00:00
Duncan Sands
8797da600f
Define LLVM_GLOBAL_VISIBILITY to be __declspec(dllexport) on
...
windows systems.
llvm-svn: 112700
2010-09-01 13:07:11 +00:00
Duncan Sands
f7e2f45e1a
If PrototypeValue is erased in the middle of using the SSAUpdator
...
then the SSAUpdator may access freed memory. Instead, simply pass
in the type and name explicitly, which is all that was used anyway.
llvm-svn: 112699
2010-09-01 10:29:33 +00:00
Duncan Sands
67159c80d8
Add convenience class for working with eh.exception calls.
...
llvm-svn: 112698
2010-09-01 09:26:00 +00:00
Dan Gohman
ad593f9d93
Revert 112442 and 112440 until the compile time problems introduced
...
by 112440 are resolved.
llvm-svn: 112692
2010-09-01 01:45:53 +00:00
Dale Johannesen
1ba5a3fc80
Add some MMX intrinsics that duplicate functionality
...
available in normal llvm operators. We aren't going to
use those for MMX any more because it's unsafe for the
optimizers to synthesize new MMX instructions.
llvm-svn: 112685
2010-09-01 00:40:09 +00:00
Devang Patel
9e8ee9242f
Use absolute label for DW_AT_stmt_list if a target does not prefer offset here.
...
This patch was developed on top of original patch by Artur Pietrek.
llvm-svn: 112678
2010-08-31 23:50:19 +00:00
Benjamin Kramer
739963f98e
Remove noisy semicolon.
...
llvm-svn: 112673
2010-08-31 23:38:13 +00:00
Kevin Enderby
cc1c9257f6
This is the second of three patches to implement support for the .loc directive
...
and output the dwarf line number tables. This takes the current loc info after
an instruction is assembled and saves the needed info into an object that has
vector and for each section. These objects will be used for the final patch to
build and emit the encoded dwarf line number tables. Again for now this is only
in the Mach-O streamer but at some point will move to a more generic place.
llvm-svn: 112668
2010-08-31 22:55:11 +00:00
Devang Patel
46570e6783
Reapply r112623. Included additional check for unused byval argument.
...
llvm-svn: 112659
2010-08-31 22:22:42 +00:00
Dale Johannesen
49a1560c66
Comment typo.
...
llvm-svn: 112652
2010-08-31 21:53:15 +00:00
Devang Patel
b94251aea0
Revert r112623. It is causing self host build failures.
...
llvm-svn: 112631
2010-08-31 19:41:03 +00:00
Devang Patel
414cbc940a
Remember byval argument's frame index during argument lowering and use this info to emit debug info.
...
Fixes Radar 8367011.
llvm-svn: 112623
2010-08-31 18:50:09 +00:00
Duncan Sands
2a1c11e104
Stop using the dom frontier in DwarfEHPrepare by not promoting alloca's
...
any more. I plan to reimplement alloca promotion using SSAUpdater later.
It looks like Bill's URoR logic really always needs domtree, so the pass
now always asks for domtree info.
llvm-svn: 112597
2010-08-31 09:05:06 +00:00
Owen Anderson
ccaee65189
Rename ValuePropagation to a more descriptive CorrelatedValuePropagation.
...
llvm-svn: 112591
2010-08-31 07:48:34 +00:00
Michael J. Spencer
b475feaea4
Fix spelling/typo.
...
llvm-svn: 112585
2010-08-31 06:36:22 +00:00
Bruno Cardoso Lopes
ebe80d78ff
zap unused method. x86 is the only user and already has a more powerfull version
...
llvm-svn: 112571
2010-08-31 02:36:20 +00:00
Dan Gohman
d261381db5
Update the descriptions of NoModRef and ModRef to be consistent
...
with the descriptions of Mod and Ref.
llvm-svn: 112557
2010-08-30 23:47:24 +00:00
Bob Wilson
826a677f94
Remove NEON vmovn intrinsic, replacing it with vector truncate operations.
...
Auto-upgrade the old intrinsic and update tests.
llvm-svn: 112507
2010-08-30 20:02:30 +00:00
Eric Christopher
da5541e56d
Fix LLVM target initialization to deal with sociopathic outside projects
...
that like to randomly define things like "X86", regenerate autoconf bits
and update cmake.
Fixes PR7852.
Patch by Xerxes Rånby!
llvm-svn: 112499
2010-08-30 18:34:48 +00:00
Eric Christopher
5f8ae3dbd6
Kill a couple of unused variables.
...
llvm-svn: 112498
2010-08-30 18:31:44 +00:00
Chris Lattner
e667efb462
nuke dead ivar which was supposed to be committed with r112496
...
llvm-svn: 112497
2010-08-30 18:16:27 +00:00
Chris Lattner
9e35d96cea
two changes: 1) make AliasSet hold the list of call sites with an
...
assertingvh so we get a violent explosion if the pointer dangles.
2) Fix AliasSetTracker::deleteValue to remove call sites with
by-pointer comparisons instead of by-alias queries. Using
findAliasSetForCallSite can cause alias sets to get merged
when they shouldn't, and can also miss alias sets when the
call is readonly.
#2 fixes PR6889, which only repros with a .c file :(
llvm-svn: 112452
2010-08-29 18:42:23 +00:00
Dan Gohman
9ea315c5ca
Make IVUsers iterative instead of recursive.
...
This has the side effect of reversing the order of most of
IVUser's results.
llvm-svn: 112442
2010-08-29 16:40:03 +00:00
Dan Gohman
5110488830
Delete an unused declaration.
...
llvm-svn: 112424
2010-08-29 14:48:15 +00:00
Chris Lattner
875b659115
Stop explicitly scheduling domfrontier before the loop passes,
...
since none of them use it. With this, we now only run
domfrontier (an N^2 analysis) 3 times at clang -O3: once for
"early" per-function cleanup, once at the start of the
per-function pipeline to support SRoA, and once late because
the EHPrepare class uses it.
EHPrepare needs to stop using it, this is silly and wasteful.
llvm-svn: 112420
2010-08-29 07:05:51 +00:00
Bob Wilson
807d004452
Remove NEON vaddl, vaddw, vsubl, and vsubw intrinsics. Instead, use llvm
...
IR add/sub operations with one or both operands sign- or zero-extended.
Auto-upgrade the old intrinsics.
llvm-svn: 112416
2010-08-29 05:57:34 +00:00
Chris Lattner
fac07b1dca
implement SSAUpdater::RewriteUseAfterInsertions, a helpful form of RewriteUse.
...
llvm-svn: 112409
2010-08-29 04:54:06 +00:00
Chris Lattner
ecf276b787
remove unions from LLVM IR. They are severely buggy and not
...
being actively maintained, improved, or extended.
llvm-svn: 112356
2010-08-28 04:09:24 +00:00
Chris Lattner
4b49ada02c
remove the ABCD and SSI passes. They don't have any clients that
...
I'm aware of, aren't maintained, and LVI will be replacing their value.
nlewycky approved this on irc.
llvm-svn: 112355
2010-08-28 03:51:24 +00:00
Owen Anderson
dc4703bcd5
Add a prototype of a new peephole optimizing pass that uses LazyValue info to simplify PHIs and select's.
...
This pass addresses the missed optimizations from PR2581 and PR4420.
llvm-svn: 112325
2010-08-27 23:31:36 +00:00
Eric Christopher
67801775eb
Fix a couple of typos.
...
Patch by Cameron Esfahani!
llvm-svn: 112297
2010-08-27 21:38:11 +00:00
Dan Gohman
636c57c5de
Switch ScalarEvolution's main Value*->SCEV* map from std::map
...
to DenseMap.
llvm-svn: 112281
2010-08-27 18:55:03 +00:00
Bob Wilson
c01101e76c
Add alignment arguments to all the NEON load/store intrinsics.
...
Update all the tests using those intrinsics and add support for
auto-upgrading bitcode files with the old versions of the intrinsics.
llvm-svn: 112271
2010-08-27 17:13:24 +00:00
Jim Grosbach
2b81a07dc7
Simplify eliminateFrameIndex() interface back down now that PEI doesn't need
...
to try to re-use scavenged frame index reference registers. rdar://8277890
llvm-svn: 112241
2010-08-26 23:32:16 +00:00
Jim Grosbach
d21756ab1e
tidy up a bit. no functional change.
...
llvm-svn: 112228
2010-08-26 21:56:30 +00:00
Chris Lattner
57e5760947
add m_BitCast for matching a bitcast.
...
llvm-svn: 112222
2010-08-26 21:35:52 +00:00
Bruno Cardoso Lopes
6150648a64
zap the now unused MVT::getIntVectorWithNumElements
...
llvm-svn: 112218
2010-08-26 20:53:12 +00:00
Devang Patel
83384fcb5c
Fix prototypes.
...
llvm-svn: 112200
2010-08-26 17:47:45 +00:00