Gabor Greif
b93cb3dc6f
We have the correct headers included to know that BB isa Value. No reinterpret_cast necessary.
...
llvm-svn: 51588
2008-05-27 10:48:39 +00:00
Gabor Greif
e052a42a62
eliminate calls to deprecated Use::init() interface
...
llvm-svn: 51570
2008-05-26 21:33:52 +00:00
Duncan Sands
fa995d7cc5
Factor code to copy global value attributes like
...
the section or the visibility from one global
value to another: copyAttributesFrom. This is
particularly useful for duplicating functions:
previously this was done by explicitly copying
each attribute in turn at each place where a
new function was created out of an old one, with
the result that obscure attributes were regularly
forgotten (like the collector or the section).
Hopefully now everything is uniform and nothing
is forgotten.
llvm-svn: 51567
2008-05-26 19:58:59 +00:00
Evan Cheng
e5e0b4660d
Eliminate x86.sse2.punpckh.qdq and x86.sse2.punpckl.qdq.
...
llvm-svn: 51533
2008-05-24 02:56:30 +00:00
Evan Cheng
564238c841
Eliminate x86.sse2.movs.d, x86.sse2.shuf.pd, x86.sse2.unpckh.pd, and x86.sse2.unpckl.pd intrinsics. These will be lowered into shuffles.
...
llvm-svn: 51531
2008-05-24 02:14:05 +00:00
Evan Cheng
365e0f3932
Autoupgrade x86.sse2.loadh.pd and x86.sse2.loadl.pd.
...
llvm-svn: 51523
2008-05-24 00:08:39 +00:00
Dan Gohman
8b6f4366ae
Tidy up BasicBlock::getFirstNonPHI, and change a bunch of places to
...
use it instead of duplicating its functionality.
llvm-svn: 51499
2008-05-23 21:05:58 +00:00
Dan Gohman
c877140168
Add #includes to make some dependencies explicit.
...
llvm-svn: 51496
2008-05-23 20:40:06 +00:00
Dan Gohman
9674662036
Add more IR support for the new extractvalue and insertvalue
...
instructions.
llvm-svn: 51461
2008-05-23 00:36:11 +00:00
Chris Lattner
beb6254442
Fix PR2267, by allowing indirect outputs to be intermixed
...
with normal outputs. Testcase here:
test/CodeGen/X86/asm-indirect-mem.ll
llvm-svn: 51409
2008-05-22 04:46:38 +00:00
Gordon Henriksen
a1f7004038
Remove a duplicative binding. Patch by Mahadevan R.
...
llvm-svn: 51238
2008-05-19 05:47:10 +00:00
Nick Lewycky
46e3a168c0
Revert constant-folding change that will miscompile in some cases.
...
llvm-svn: 51223
2008-05-17 19:00:05 +00:00
Nick Lewycky
baa90d4eef
Unbreak the build.
...
llvm-svn: 51217
2008-05-17 09:05:22 +00:00
Nick Lewycky
1df40102a9
Constant fold inttoptr and ptrtoint.
...
llvm-svn: 51216
2008-05-17 09:03:26 +00:00
Eric Christopher
11359e9b1c
Add functions to enable adding a single attribute to a function and
...
its associated call site.
llvm-svn: 51204
2008-05-16 20:39:43 +00:00
Gabor Greif
d61f20217a
API change for {BinaryOperator|CmpInst|CastInst}::create*() --> Create. Legacy interfaces will be in place for some time. (Merge from use-diet branch.)
...
llvm-svn: 51200
2008-05-16 19:29:10 +00:00
Dan Gohman
fe7f6bc9ce
Revert the change from r51157 in
...
test/Verifier/2002-11-05-GetelementptrPointers.ll, which was incorrect.
Instead, fix getIndexedType to not follow pointer types, as
PointerType is a subclass of CompositeType.
llvm-svn: 51171
2008-05-16 00:16:32 +00:00
Dan Gohman
821bf58428
IR support for extractvalue and insertvalue instructions. Also, begin
...
moving toward making structs and arrays first-class types.
llvm-svn: 51157
2008-05-15 19:50:34 +00:00
Gabor Greif
48ffb6c7dc
Fix a bunch of 80col violations that arose from the Create API change. Tweak makefile targets to find these better.
...
llvm-svn: 51143
2008-05-15 10:04:30 +00:00
Nate Begeman
253fc69ff3
Move the operator new and operator delete out of line. This fixes an issue with
...
operator new() referring to the static initTags function, which has to be in the
same linkage unit as any file including User.h.
llvm-svn: 51136
2008-05-15 01:23:11 +00:00
Dale Johannesen
768b6f281e
Add CommonLinkage; currently tentative definitions
...
are represented as "weak", but there are subtle differences
in some cases on Darwin, so we need both. The intent
is that "common" will behave identically to "weak" unless
somebody changes their target to do something else.
No functional change as yet.
llvm-svn: 51118
2008-05-14 20:12:51 +00:00
Dan Gohman
fe628b229c
Make PreVerifyID, IntSigsEnd, and KillSigsEnd const.
...
llvm-svn: 51088
2008-05-14 00:42:30 +00:00
Gabor Greif
dd2f5c797d
Merge of r51073-51074 from use-diet branch.
...
Do not rely on std::swap<Use>, provide a (faster) member function instead.
This change is primarily necessitated by MSVC++'s incompatibility with
declaring std::swap<Use> to be a friend of Use.
Also contains some minor tweaks to Use inline functions,
to undo pointless changes that sneaked in with the last merge.
llvm-svn: 51078
2008-05-13 22:51:52 +00:00
Devang Patel
bae88af8c1
Dominance Frontier is cfg only pass.
...
llvm-svn: 51075
2008-05-13 22:43:21 +00:00
Gabor Greif
22afb1f8f0
Derive GetResultInst from UnaryInstruction, this simplifies code and removes a FIXME.
...
llvm-svn: 51023
2008-05-13 07:09:08 +00:00
Dan Gohman
138a53b303
Change class' public PassInfo variables to by initialized with the
...
address of the PassInfo directly instead of calling getPassInfo.
This eliminates a bunch of dynamic initializations of static data.
Also, fold RegisterPassBase into PassInfo, make a bunch of its
data members const, and rearrange some code to initialize data
members in constructors instead of using setter member functions.
llvm-svn: 51022
2008-05-13 02:05:11 +00:00
Dan Gohman
bab18cae46
Clean up the use of static and anonymous namespaces. This turned up
...
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
2008-05-13 00:00:25 +00:00
Nate Begeman
b72a398339
Pointer comparisons should be handled by icmp, not vicmp :)
...
llvm-svn: 50994
2008-05-12 20:11:05 +00:00
Nate Begeman
6258a36fe3
Hard code CmpInst back to i1 for now while I go track down what in the bitcode reader/writer is assuming i1
...
This was breaking a bunch of tests
llvm-svn: 50992
2008-05-12 20:01:56 +00:00
Nate Begeman
e2b25610bb
Fix build breakage
...
llvm-svn: 50986
2008-05-12 19:23:22 +00:00
Nate Begeman
b5b1e1353b
Add two new instructions to the llvm IR, vicmp and vfcmp. see updated LangRef
...
for details. CodeGen support coming in a follow up patch
llvm-svn: 50985
2008-05-12 19:01:56 +00:00
Dan Gohman
4f0d9d18c3
Update comments.
...
llvm-svn: 50974
2008-05-12 16:34:30 +00:00
Gabor Greif
49bf1a4cf6
merge of use-diet branch to trunk
...
llvm-svn: 50943
2008-05-10 08:32:32 +00:00
Anton Korobeynikov
0f467b9965
Check for validity of aliasee pointer before dereference.
...
llvm-svn: 50878
2008-05-08 23:11:06 +00:00
Chris Lattner
e3970f1e95
conservatively say that volatile stores read memory.
...
llvm-svn: 50872
2008-05-08 21:58:49 +00:00
Chris Lattner
1e4afe8fa7
store can't read from memory.
...
llvm-svn: 50869
2008-05-08 21:47:43 +00:00
Chris Lattner
3c362081d5
add a new Instruction::mayReadFromMemory predicate, make
...
Instruction::mayWriteToMemory stronger for invokes.
llvm-svn: 50858
2008-05-08 17:16:51 +00:00
Anton Korobeynikov
ddb93e7a02
Turn StripPointerCast() into a method
...
llvm-svn: 50836
2008-05-07 22:54:15 +00:00
Anton Korobeynikov
90ee6d6616
Make StripPointerCast a common function (should we mak it method of Value instead?)
...
llvm-svn: 50775
2008-05-06 22:52:30 +00:00
Dan Gohman
a84b75df17
Remove uses of llvm/System/IncludeFile.h that are no longer needed.
...
llvm-svn: 50695
2008-05-06 01:32:53 +00:00
Gordon Henriksen
6f33fd36ab
Use (void) instead of () in C code.
...
llvm-svn: 50620
2008-05-04 12:55:34 +00:00
Evan Cheng
c1c2adbfc6
Add separate intrinsics for MMX / SSE shifts with i32 integer operands. This allow us to simplify the horribly complicated matching code.
...
llvm-svn: 50601
2008-05-03 00:52:09 +00:00
Chris Lattner
757d7d318a
fix a bug in my previous patch, a classic =/== bug.
...
llvm-svn: 50483
2008-04-30 15:27:09 +00:00
Chris Lattner
710d05695f
add a method for comparing to see if a value has a specified name.
...
llvm-svn: 50465
2008-04-30 03:55:40 +00:00
Gordon Henriksen
0b2f0d3007
Expose parameter attributes via C bindings.
...
Patch by Anders Johnsen!
llvm-svn: 50360
2008-04-28 17:37:06 +00:00
Chris Lattner
bef7aa1d4b
Allow asms to return multiple results by value.
...
llvm-svn: 50328
2008-04-27 23:33:55 +00:00
Nick Lewycky
1f831c0f57
Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989
...
r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.
llvm-svn: 50265
2008-04-25 16:53:59 +00:00
Chris Lattner
50069efc7a
tighten up verifier checks which missed cases where
...
return instrs operands didn't match up with function results.
llvm-svn: 50182
2008-04-23 20:33:41 +00:00
Chris Lattner
39e4b2e5d2
Enforce that multiple return values have to have at least one result.
...
llvm-svn: 50137
2008-04-23 05:36:34 +00:00
Chris Lattner
bc7ea01b8a
Verify that the operand of a getresult instruction is a
...
call/invoke or undef.
llvm-svn: 50129
2008-04-23 04:06:15 +00:00