History log of /external/llvm/lib/VMCore/Instruction.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ec4e85e3364f50802f2007e4b1e23661d4610366 28-Jun-2012 Hal Finkel <hfinkel@anl.gov> Refactor operation equivalence checking in BBVectorize by extending Instruction::isSameOperationAs.

Maintaining this kind of checking in different places is dangerous, extending
Instruction::isSameOperationAs consolidates this logic into one place. Here
I've added an optional flags parameter and two flags that are important for
vectorization: CompareIgnoringAlignment and CompareUsingScalarTypes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
c038a7833565ecf92a699371d448135a097c9e2f 12-Jun-2012 Duncan Sands <baldrick@free.fr> Now that Reassociate's LinearizeExprTree can look through arbitrary expression
topologies, it is quite possible for a leaf node to have huge multiplicity, for
example: x0 = x*x, x1 = x0*x0, x2 = x1*x1, ... rapidly gives a value which is x
raised to a vast power (the multiplicity, or weight, of x). This patch fixes
the computation of weights by correctly computing them no matter how big they
are, rather than just overflowing and getting a wrong value. It turns out that
the weight for a value never needs more bits to represent than the value itself,
so it is enough to represent weights as APInts of the same bitwidth and do the
right overflow-avoiding dance steps when computing weights. As a side-effect it
reduces the number of multiplies needed in some cases of large powers. While
there, in view of external uses (eg by the vectorizer) I made LinearizeExprTree
static, pushing the rank computation out into users. This is progress towards
fixing PR13021.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
9df72a93ef27a27c6853eed3ed92c9e0b62c9ca6 10-May-2012 Joel Jones <joel_k_jones@apple.com> Fix a problem with incomplete equality testing of PHINodes in
Instruction::IsIdenticalToWhenDefined.

This manifested itself when inlining two calls to the same function. The
inlined function had a switch statement that returned one of a set of
global variables. Without this modification, the two phi instructions that
chose values from the branches of the switch instruction inlined from the
callee were considered equivalent and jump-threading replaced a load for the
first switch value with a phi selecting from the second switch, thereby
producing incorrect code.

This patch has been tested with "make check-all", "lnt runteste nt", and
llvm self-hosted, and on the original program that had this problem,
wireshark.

<rdar://problem/11025519>



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
8833ef03b9ceaa52063116819fff8b3d16fd8933 06-Feb-2012 Bill Wendling <isanbard@gmail.com> [unwind removal] Remove all of the code for the dead 'unwind' instruction. There
were no 'unwind' instructions being generated before this, so this is in effect
a no-op.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
fdebc38523b397743973ff6a2d2e93b112dd96e5 17-Jan-2012 David Blaikie <dblaikie@gmail.com> Remove unreachable code. (replace with llvm_unreachable to help GCC where necessary)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
f0426601977c3e386d2d26c72a2cca691dc42072 15-Dec-2011 Dan Gohman <gohman@apple.com> Move Instruction::isSafeToSpeculativelyExecute out of VMCore and
into Analysis as a standalone function, since there's no need for
it to be in VMCore. Also, update it to use isKnownNonZero and
other goodies available in Analysis, making it more precise,
enabling more aggressive optimization.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
81b4e434d98d4d2ed0a7b493b3ecd09dd7735275 01-Sep-2011 Eli Friedman <eli.friedman@gmail.com> Make isSafeToSpeculativelyExecute() return the right answer for some new instructions. Found by inspection; not sure what practical impact, if any, this has.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
c9b2a987a291434490fd5b3b6e98b9992916ece4 17-Aug-2011 Bill Wendling <isanbard@gmail.com> Revert r137655. There is some question about whether the 'landingpad'
instruction should be marked as potentially reading and/or writing memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
55fdb4eec073fe7fd480ffa7e2a3b05acfacd5b1 16-Aug-2011 Bill Wendling <isanbard@gmail.com> The resume instruction may throw. Return 'true' in this case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
9d6070f161d89376c7c834950f518e25e34d7ce8 15-Aug-2011 Bill Wendling <isanbard@gmail.com> Duncan pointed out that the LandingPadInst might read memory. (It might also
write to memory.) Marking it as such makes some checks for immobility go away.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
e5e771263a71536ab2794ae726f43e7ccd2720ac 15-Aug-2011 Eli Friedman <eli.friedman@gmail.com> Fix predicates methods on Instruction to handle atomic load/store correctly.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
e6e8826870bee3facb04f950f0bd725f8a88623d 12-Aug-2011 Bill Wendling <isanbard@gmail.com> Initial commit of the 'landingpad' instruction.

This implements the 'landingpad' instruction. It's used to indicate that a basic
block is a landing pad. There are several restrictions on its use (see
LangRef.html for more detail). These restrictions allow the exception handling
code to gather the information it needs in a much more sane way.

This patch has the definition, implementation, C interface, parsing, and bitcode
support in it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
dccc03b2423fe65efb5963ae816b99c24fc53374 31-Jul-2011 Bill Wendling <isanbard@gmail.com> Add the 'resume' instruction for the new EH rewrite.

This adds the 'resume' instruction class, IR parsing, and bitcode reading and
writing. The 'resume' instruction resumes propagation of an existing (in-flight)
exception whose unwinding was interrupted with a 'landingpad' instruction (to be
added later).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136589 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
10c6d12a9fd4dab411091f64db4db69670b88850 30-Jul-2011 Bill Wendling <isanbard@gmail.com> Revert r136253, r136263, r136269, r136313, r136325, r136326, r136329, r136338,
r136339, r136341, r136369, r136387, r136392, r136396, r136429, r136430, r136444,
r136445, r136446, r136253 pending review.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
55ba816883842e793cdeb32fcb805c4e011b527f 29-Jul-2011 Eli Friedman <eli.friedman@gmail.com> Misc optimizer+codegen work for 'cmpxchg' and 'atomicrmw'. They appear to be
working on x86 (at least for trivial testcases); other architectures will
need more work so that they actually emit the appropriate instructions for
orderings stricter than 'monotonic'. (As far as I can tell, the ARM, PPC,
Mips, and Alpha backends need such changes.)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
ff03048c1350fcc4fda1ef6d6c57252f3a950854 28-Jul-2011 Eli Friedman <eli.friedman@gmail.com> LangRef and basic memory-representation/reading/writing for 'cmpxchg' and
'atomicrmw' instructions, which allow representing all the current atomic
rmw intrinsics.

The allowed operands for these instructions are heavily restricted at the
moment; we can probably loosen it a bit, but supporting general
first-class types (where it makes sense) might get a bit complicated,
given how SelectionDAG works.

As an initial cut, these operations do not support specifying an alignment,
but it would be possible to add if we think it's useful. Specifying an
alignment lower than the natural alignment would be essentially
impossible to support on anything other than x86, but specifying a greater
alignment would be possible. I can't think of any useful optimizations which
would use that information, but maybe someone else has ideas.

Optimizer/codegen support coming soon.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
772fe17a6d07304ae2e6b3052bbb24ebb751f0f3 27-Jul-2011 Bill Wendling <isanbard@gmail.com> Merge the contents from exception-handling-rewrite to the mainline.

This adds the new instructions 'landingpad' and 'resume'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
8a552bb85a5e9a6c250c0a899941fbd3ae7b5006 27-Jul-2011 Eli Friedman <eli.friedman@gmail.com> Misc mid-level changes for new 'fence' instruction.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
47f3513dd574535aeb40c9eb11134f0899e92269 26-Jul-2011 Eli Friedman <eli.friedman@gmail.com> Initial implementation of 'fence' instruction, the new C++0x-style replacement for llvm.memory.barrier.

This is just a LangRef entry and reading/writing/memory representation; optimizer+codegen support coming soon.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e 18-Jul-2011 Chris Lattner <sabre@nondot.org> land David Blaikie's patch to de-constify Type, with a few tweaks.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
4baa510f48000308251a0d7c6be491d11c20d30b 14-Jul-2011 Chris Lattner <sabre@nondot.org> manually copy debugloc over to a new instruction in clone() instead
of calling getAllMetadata(). This is semantically identical, but doing
it this way avoids unpacking the DebugLoc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
fc6d3a49867cd38954dc40936a88f1907252c6d2 13-Jul-2011 Jay Foad <jay.foad@gmail.com> Convert InsertValueInst and ExtractValueInst APIs to use ArrayRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
f6c63c23203ca4c4aa89efa2bff722bb479cfe3c 26-Jan-2011 Nick Lewycky <nicholas@mxc.ca> AttrListPtr has an overloaded operator== which does this for us, we should use
it. No functionality change!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
0d7ce5ffa4aa853b75e1015c62e27bd9f23ef73b 20-Dec-2010 Duncan Sands <baldrick@free.fr> There is no need for isAssociative to take the type as an argument anymore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122242 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
4d70a2949007edeaad4662d5cdcb2d272cb2b2ff 11-Nov-2010 Dan Gohman <gohman@apple.com> Factor out Instruction::isSafeToSpeculativelyExecute's code for
testing for dereferenceable pointers into a helper function,
isDereferenceablePointer. Teach it how to reason about GEPs
with simple non-zero indices.

Also eliminate ArgumentPromtion's IsAlwaysValidPointer,
which didn't check for weak externals or out of range gep
indices.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
4f1be4abba762f8a7b77d7622abaf1ed1a87b48b 21-Jul-2010 Dan Gohman <gohman@apple.com> Rename removeAllMetadata to clearMetadataHashEntries and simplify
it to just do the things that need to be done when an instruction
is deleted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
a8b9df7bd96e0b0bc6dec448d30b7d72180b6595 12-Jul-2010 Gabor Greif <ggreif@gmail.com> cache dereferenced iterators

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
8e82e3bf59a4163cd9c44d217baae62d2d2b753c 11-Jul-2010 Nick Lewycky <nicholas@mxc.ca> If it's safe to speculatively execute load(alloca) the it's safe to execute
load(gep(alloca)) where the gep is all-zeros. There's more we could do here but
this is a common case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
108e3707fa4df177fdfc1533ce941a50c70eef7c 02-Jul-2010 Dan Gohman <gohman@apple.com> IndirectBr is not safe to speculatively execute (!)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107454 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
61336ae001e07c6d68454b1494e45954d373fb51 01-Apr-2010 Chris Lattner <sabre@nondot.org> Switch the representation of the location in instruction from
being a TrackingVH<MDNode> to a NewDebugLoc, shrinking
sizeof(Instruction) a lot, and providing clients the ability
to deal with locations in terms of NewDebugLoc instead of
having to deal with Metadata. This is still fully compatible
with all clients that *do* use MDNodes for everything of
course.

No functionality change.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
ec39f095f5abaf1ec90d7c6c46454032cda36e1c 31-Mar-2010 Chris Lattner <sabre@nondot.org> Fix a major source of compile-time slowness at -O0 -g by optimizing
the storage of !dbg metadata kinds in the instruction themselves.
The on-the-side hash table works great for metadata that not-all
instructions get, or for metadata that only exists when optimizing.
But when compile-time is everything, it isn't great.

I'm not super thrilled with the fact that this plops a TrackingVH in
Instruction, because it grows it by 3 words. I'm investigating
alternatives, but this should be a step in the right direction in any
case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
60ad781c61815ca5b8dc2a45a102e1c8af65992f 26-Mar-2010 Gabor Greif <ggreif@gmail.com> rename use_const_iterator to const_use_iterator for consistency's sake

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
7ba4e17285ba271758dc478cf422b64e7a2f0e8e 04-Jan-2010 Dan Gohman <gohman@apple.com> Add a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
fa5dd977e4ed16a82e1367ff9ed77c94d4054457 03-Jan-2010 Chris Lattner <sabre@nondot.org> it isn't safe to speculative load from a malloc, it might have
returned null, and may not have been big enough in any case.
Thanks to Jay Foad for pointing this out!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
508b19a5a41a4b82be4ae71e6ea5c691bea99b96 29-Dec-2009 Chris Lattner <sabre@nondot.org> remove some unneeded Metadata interfaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
b2406d9895314cbc61183c2fb712cd1a2ddfe7e0 29-Dec-2009 Chris Lattner <sabre@nondot.org> sink the Instruction::HasMetadata bit into SubclassData.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
3990b121cf4a0b280ed3e54cf13870cbf4259e78 29-Dec-2009 Chris Lattner <sabre@nondot.org> This is a major cleanup of the instruction metadata interfaces that
I asked Devang to do back on Sep 27. Instead of going through the
MetadataContext class with methods like getMD() and getMDs(), just
ask the instruction directly for its metadata with getMetadata()
and getAllMetadata().

This includes a variety of other fixes and improvements: previously
all Value*'s were bloated because the HasMetadata bit was thrown into
value, adding a 9th bit to a byte. Now this is properly sunk down to
the Instruction class (the only place where it makes sense) and it
will be folded away somewhere soon.

This also fixes some confusion in getMDs and its clients about
whether the returned list is indexed by the MDID or densely packed.
This is now returned sorted and densely packed and the comments make
this clear.

This introduces a number of fixme's which I'll follow up on.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
3ad70d5d61f3f86fb5bc167e157680fc107a1173 03-Nov-2009 Victor Hernandez <vhernandez@apple.com> Changes requested (avoid getFunction(), avoid Type creation via isVoidTy(), and avoid redundant isFreeCall cases) in feedback to r85176

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
ab21db79ef1d2530880ad11f21f0b87ffca02dd4 28-Oct-2009 Chris Lattner <sabre@nondot.org> rename indbr -> indirectbr to appease the residents of #llvm.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
50b6e33584f4e4cf75c7795b1f1a90731861c825 27-Oct-2009 Devang Patel <dpatel@apple.com> Factor out redundancy from clone() implementations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
f006b183e2d2bebcf6968d1dd7350397c95b0325 27-Oct-2009 Victor Hernandez <vhernandez@apple.com> Rename MallocFreeHelper as MemoryBuiltins

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
f9be95f867745b6754b2402b9b72f9eaeabd637f 27-Oct-2009 Chris Lattner <sabre@nondot.org> add enough support for indirect branch for the feature test to pass
(assembler,asmprinter, bc reader+writer) and document it. Codegen
currently aborts on it.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
f2becca90b832cc02345fba063b9b439b2be33ad 27-Oct-2009 Victor Hernandez <vhernandez@apple.com> Rename MallocHelper as MallocFreeHelper, since it now also identifies calls to free()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
046e78ce55a7c3d82b7b6758d2d77f2d99f970bf 27-Oct-2009 Victor Hernandez <vhernandez@apple.com> Remove FreeInst.
Remove LowerAllocations pass.
Update some more passes to treate free calls just like they were treating FreeInst.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
7b929dad59785f62a66f7c58615082f98441e95e 23-Oct-2009 Victor Hernandez <vhernandez@apple.com> Remove AllocationInst. Since MallocInst went away, AllocaInst is the only subclass of AllocationInst, so it no longer is necessary.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
a276c603b82a11b0bf0b59f0517a69e4b63adeab 17-Oct-2009 Victor Hernandez <vhernandez@apple.com> Remove MallocInst from LLVM Instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
f9e0a220fc97df6bcbd545009e036a91f67e9cc4 24-Sep-2009 Devang Patel <dpatel@apple.com> Move parent assertion check before metadata deletion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
ffa363c94b7180635efd3c5391da0e034eb138f3 23-Sep-2009 Devang Patel <dpatel@apple.com> Delete attached metadata when an instruction is deleted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
a279bc3da55691784064cb47200a1c584408b8ab 20-Sep-2009 Daniel Dunbar <daniel@zuster.org> Tabs -> spaces, and remove trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
88d9839d07a6b5a03484d664913de0f2b33d3bff 18-Sep-2009 Victor Hernandez <vhernandez@apple.com> Update malloc call creation code (AllocType is now the element type of the malloc, not the resulting type).

In getMallocArraySize(), fix bug in the case that array size is the product of 2 constants.

Extend isArrayMalloc() and getMallocArraySize() to handle case where malloc is used as char array.

Ensure that ArraySize in LowerAllocations::runOnBasicBlock() is correct type.

Extend Instruction::isSafeToSpeculativelyExecute() to handle malloc calls.

Add verification for malloc calls.

Reviewed by Dan Gohman.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82257 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
75b0edae7275436c1255c10eb98e5b0dffc978f6 26-Aug-2009 Dan Gohman <gohman@apple.com> This should use isIndenticalToWhenDefined.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
58cfa3b13752579c86cf85270d49f9ced0942f2f 26-Aug-2009 Dan Gohman <gohman@apple.com> Rename Instruction::isIdenticalTo to Instruction::isIdenticalToWhenDefined,
and introduce a new Instruction::isIdenticalTo which tests for full
identity, including the SubclassOptionalData flags. Also, fix the
Instruction::clone implementations to preserve the SubclassOptionalData
flags. Finally, teach several optimizations how to handle
SubclassOptionalData correctly, given these changes.

This fixes the counterintuitive behavior of isIdenticalTo not comparing
the full value, and clone not returning an identical clone, as well as
some subtle bugs that could be caused by these.

Thanks to Nick Lewycky for reporting this, and for an initial patch!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
0b79a7727d68a507837e827803859424cf3d997b 17-Jul-2009 Eli Friedman <eli.friedman@gmail.com> Replace isTrapping with a new, similar method called
isSafeToSpeculativelyExecute. The new method is a bit closer to what
the callers actually care about in that it rejects more things callers
don't want. It also adds more precise handling for integer
division, and unifies code for analyzing the legality of a speculative
load.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
34468c205f7da41f967489760a7ab97e1bd265b0 14-Jul-2009 Dan Gohman <gohman@apple.com> FreeInst is trapping.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
7f6aa2b162e5daaf7b9ccf05d749597d3d7cf460 08-Jul-2009 Nick Lewycky <nicholas@mxc.ca> Remove the vicmp and vfcmp instructions. Because we never had a release with
these instructions, no autoupgrade or backwards compatibility support is
provided.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
194ae785e1f94619cbdcdcf2921caa6997277d32 12-Jun-2009 Dan Gohman <gohman@apple.com> Give Instruction::isSameOperationAs a corresponding comment to note
the relationship with MergeFunctions.cpp's isEquivalentOperation,
and make a trivial code reordering so that the two functions are
easier to compare.

Fix the name of Instruction::isSameOperationAs in MergeFunction.cpp's
isEquivalentOperation's comment, and fix a nearby 80-column violation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
ae3a0be92e33bc716722aa600983fc1535acb122 05-Jun-2009 Dan Gohman <gohman@apple.com> Split the Add, Sub, and Mul instruction opcodes into separate
integer and floating-point opcodes, introducing
FAdd, FSub, and FMul.

For now, the AsmParser, BitcodeReader, and IRBuilder all preserve
backwards compatability, and the Core LLVM APIs preserve backwards
compatibility for IR producers. Most front-ends won't need to change
immediately.

This implements the first step of the plan outlined here:
http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
7af1c78b98d2df7d0ab9154461ca3d835706716e 06-May-2009 Duncan Sands <baldrick@free.fr> Allow readonly functions to unwind exceptions. Teach
the optimizers about this. For example, a readonly
function with no uses cannot be removed unless it is
also marked nounwind.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
a36791da41cf4f635e50077b290676b873836bda 23-Jan-2009 Gabor Greif <ggreif@gmail.com> Simplify the logic of getting hold of a PHI predecessor block.
There is now a direct way from value-use-iterator to incoming block in PHINode's API.
This way we avoid the iterator->index->iterator trip, and especially the costly
getOperandNo() invocation. Additionally there is now an assertion that the iterator
really refers to one of the PHI's Uses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
3ff704fa2b67d6c857142218c5aca3058b6239fc 13-Jan-2009 Chris Lattner <sabre@nondot.org> add a new insertAfter method, patch by Tom Jablin!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
e3a0884ddf9009f040d80f5fde3b6d5d70b0fa13 27-Nov-2008 Chris Lattner <sabre@nondot.org> improve const correctness.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
41fe88b26dab59bedc9e45a43752245b9ec3496a 27-Oct-2008 Nick Lewycky <nicholas@mxc.ca> Fix an obvious copy/pasto.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
9a8af451a39a38351d87866a1d39e594a0c3341f 16-Oct-2008 Dan Gohman <gohman@apple.com> Fix Instruction::isIdenticalTo and isSameOperationAs to recognize
additional information in Loads, Stores, Calls, Invokes,
InsertValueInsts, and ExtractValueInsts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
95c2cc51ebb2a58ccd66a1465d5c8ed89b381bc9 16-Oct-2008 Dan Gohman <gohman@apple.com> Correct the name of isTrapping in comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
fc74abfba5128544a750fce22fdf13eb0403e3ce 23-Jul-2008 Dan Gohman <gohman@apple.com> Enable first-class aggregates support.

Remove the GetResultInst instruction. It is still accepted in LLVM assembly
and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove
support for return instructions with multiple values. These are auto-upgraded
to use InsertValueInst instructions.

The IRBuilder still accepts multiple-value returns, and auto-upgrades them
to InsertValueInst instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
26bb50ab48c561adfd32d129e0eff0cbf0a04625 17-Jun-2008 Owen Anderson <resistor@mac.com> Add an insertBefore method for attaching previously unattached instructions,
such as those created by clone(), to a basic block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
74b5e07cc4a65989eb43bdc016d51db3c192691f 30-May-2008 Matthijs Kooijman <matthijs@stdin.nl> Let Instruction::getOpcodeName() return something useful for the new
insertvalue / extractvalue instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
ac80ade1580378e484e24c9f66d2fa5b058e5891 12-May-2008 Nate Begeman <natebegeman@mac.com> Add two new instructions to the llvm IR, vicmp and vfcmp. see updated LangRef
for details. CodeGen support coming in a follow up patch


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
748118d8aa8a66597437e6970ab389c988bbdb8b 08-May-2008 Chris Lattner <sabre@nondot.org> conservatively say that volatile stores read memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
38818b072f2e914aeb28fefc38d19eca0268f873 08-May-2008 Chris Lattner <sabre@nondot.org> store can't read from memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
d96288a2ff188bb1fb1b86fb89b1ac82f6310a5c 08-May-2008 Chris Lattner <sabre@nondot.org> add a new Instruction::mayReadFromMemory predicate, make
Instruction::mayWriteToMemory stronger for invokes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
7ae40e7d8ac43feaa5b3107e02c9b3a77fe729f2 21-Apr-2008 Chris Lattner <sabre@nondot.org> add a handy helper method to instruction, useful for determining
whether it is used outside of some block. This can be used to see
if there are any non-local references, for example.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
d660f973dc69801615545c74409e77888869aae2 14-Apr-2008 Dan Gohman <gohman@apple.com> VAArg may trap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
95cb2ad919043d8ec5dbcc36cd59ac7d9a46999f 22-Feb-2008 Devang Patel <dpatel@apple.com> print getresult instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
4ee451de366474b9c228b4e5fa573795a715216d 29-Dec-2007 Chris Lattner <sabre@nondot.org> Remove attribution from file headers, per discussion on llvmdev.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
7915cbee4d6ecc8bc2daa9fb44833a134a25016b 12-Dec-2007 Duncan Sands <baldrick@free.fr> Revert r44626, which turned off the use of readonly
and readnone for functions with bodies because it
broke llvm-gcc-4.2 bootstrap. It turns out that,
because of LLVM's array_ref hack, gcc was computing
pure/const attributes wrong (now fixed by turning
off the gcc ipa-pure-const pass).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
afba8fe662d65b25b4baf46bb26cc18e1f9cc0a5 10-Dec-2007 Gordon Henriksen <gordonhenriksen@mac.com> Reverting dtor devirtualization patch.
_sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed
_sabre_: the vtable lives to fight another day

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
ed455c8fa25dd37a13b33f0afa66be03ac49b5bb 09-Dec-2007 Gordon Henriksen <gordonhenriksen@mac.com> Devirtualizing Value destructor (PR889). Patch by Pawel Kunio!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
5d84afdc836fa28d840449108206e850617a2a15 05-Dec-2007 Duncan Sands <baldrick@free.fr> Commit 44487 broke bootstrap of llvm-gcc-4.2. It is
not yet clear why, but in the meantime work around the
problem by making less use of readnone/readonly info.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
a3355ffb3d30d19d226bbb75707991c60f236e37 03-Dec-2007 Duncan Sands <baldrick@free.fr> Rather than having special rules like "intrinsics cannot
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
37f3ee17d2192e52f436f640788b28c0b68db102 26-Jul-2007 Dan Gohman <gohman@apple.com> Move the GET_SIDE_EFFECT_INFO logic from isInstructionTriviallyDead
to Instruction::mayWriteToMemory, fixing a FIXME, and helping
various places that call mayWriteToMemory directly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
910c80a07503591052a77cefb26cebea95a8d743 24-Feb-2007 Chris Lattner <sabre@nondot.org> Refactor the setName stuff, moving it down the inheritance hierarchy, to
solve a crash in -instcombine -debug that was hit while investigating PR1217


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
da304d07507d373477a79e9a3259724b35838deb 19-Feb-2007 Chris Lattner <sabre@nondot.org> remove warning


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
c552ff2825d7d7c8128ae845d3e1512649780f91 19-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Add a FIXME for unwritten code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
fadb3f773e5ab171315761d151c1416921d25614 16-Feb-2007 Andrew Lenharth <andrewl@lenharth.org> fix build


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
bb5493d9fa8845f002613ac013087b347a052357 16-Feb-2007 Chris Lattner <sabre@nondot.org> make mayWriteToMemory a non-virtual function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
f00042a9990d90885a8f236ed0f6bf07902d1374 13-Feb-2007 Chris Lattner <sabre@nondot.org> Switch UnaryOperators to default to passing names up by const char* when possible.
This speeds up bcreading by 1.5%.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
dec628eead87b20773c98a00830580df211acc98 12-Feb-2007 Chris Lattner <sabre@nondot.org> Switch ValueSymbolTable to use StringMap<Value*> instead of std::map<std::string, Value*>
as its main datastructure. There are many improvements yet to be made, but
this speeds up opt --std-compile-opts on 447.dealII by 7.3%.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
ef9b9a793949469cdaa4ab6d0173136229dcab7b 05-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR411:
This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
70d8d121eaa3a3982022f7146113416f9b3f26c1 04-Jan-2007 Chris Lattner <sabre@nondot.org> Now that setcondinst has been eliminated, we can mark Value::SubclassID
const and remove the ugly mutator methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
e4d87aa2de6e52952dca73716386db09aad5a8fd 23-Dec-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
74f1642bc1c2981e4573c9f0690d91b6a9bbc68c 03-Dec-2006 Reid Spencer <rspencer@reidspencer.com> Allow the ICmp and FCmp instructions to be written by the AsmWriter


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
3da59db637a887474c1b1346c1f3ccf53b6c4663 27-Nov-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
45fb3f3cb2b8efc01d9bbe42a64194f35b92c759 20-Nov-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
First in a series of patches to convert SetCondInst into ICmpInst and
FCmpInst using only two opcodes and having the instructions contain their
predicate value. Nothing uses these classes yet. More patches to follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
3822ff5c71478c7c90a50ca57045fb676fcb5005 08-Nov-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
This patch converts the old SHR instruction into two instructions,
AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not
dependent on the sign of their operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
0a783f783ca05c961234385f5b269d4cf03dbbdb 02-Nov-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
Replace the REM instruction with UREM, SREM and FREM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
4d3839ded2f434c67bc5f5cc7803978a727defb3 26-Oct-2006 Chris Lattner <sabre@nondot.org> Fix Transforms/InstCombine/2006-10-26-VectorReassoc.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
1628cec4d7fce310d9cde0bcc73997e5a71692c4 26-Oct-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
Make necessary changes to support DIV -> [SUF]Div. This changes llvm to
have three division instructions: signed, unsigned, floating point. The
bytecode and assembler are bacwards compatible, however.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
a5b07404f79036727ba47624050040defe59a5fa 17-Sep-2006 Chris Lattner <sabre@nondot.org> Add new SetCondInst::isRelational/isEquality methods. Rename
Instruction::isRelational to Instruction::isComparison.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
70aa33ee37fede7fb84de02daa38557ffd366458 21-Jun-2006 Chris Lattner <sabre@nondot.org> Add some out-of-line virtual dtors so that the class has a "home", preventing
vtables for (e.g.) Instruction from being emitted into every .o file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
00f1023cf8b30c74dc219525f518a80c45b6e7ba 08-Apr-2006 Chris Lattner <sabre@nondot.org> Add shufflevector support, todo, implement better constant folding.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
c152f9cd26e7cb32352c513389a18ffd892ecaec 17-Jan-2006 Robert Bocchino <bocchino@illinois.edu> VMCore support for the insertelement operation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
b52ee7f5ffd189c4f21ab227c6a24061ef3378fc 10-Jan-2006 Robert Bocchino <bocchino@illinois.edu> Added support for the extractelement operation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
0fe34d89126c594e0e8378d978a593350189fedf 08-Aug-2005 Chris Lattner <sabre@nondot.org> add new helper function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
558bc88a00930fce283b240b7c9555f649a18f1b 18-Jun-2005 Andrew Lenharth <andrewl@lenharth.org> core changes for varargs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
ddb6db4fa11d06217d01d8431596131abdfb7ef0 06-May-2005 Chris Lattner <sabre@nondot.org> Add a 'tail' marker for call instructions, patch contributed by
Alexander Friedman.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
fd93908ae8b9684fe71c239e3c6cfe13ff6a2663 22-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
0d1e40728d668085257b78657b381e1f13d77d52 05-Mar-2005 Chris Lattner <sabre@nondot.org> remove all of the various setName implementations, consolidating them into
Value::setName, which is no longer virtual.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
18221ed50707342bc4c655b33a3d3dc652463811 05-Mar-2005 Chris Lattner <sabre@nondot.org> Remove the 2nd argument to Value::setName


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
96d83f63cdbb33c075901b1b84eb07622d86386f 29-Jan-2005 Chris Lattner <sabre@nondot.org> Adjust to changes in User class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
38f14553939e574becab6ea1e0b055d31293b0cf 30-Nov-2004 Chris Lattner <sabre@nondot.org> Add method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
b976e668165e1875a8f1eb7af800e33bb1e4393d 16-Oct-2004 Chris Lattner <sabre@nondot.org> Add support for undef and unreachable


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
4b83380f330b1c77bb9b4ad8f63bdcf1a596afd6 12-Oct-2004 Chris Lattner <sabre@nondot.org> Implement remove/eraseFromParent methods


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
551ccae044b0ff658fe629dd67edd5ffe75d10e8 02-Sep-2004 Reid Spencer <rspencer@reidspencer.com> Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
40515dba1bcbde16ee79657c6053232bc4562554 27-Jun-2004 Chris Lattner <sabre@nondot.org> Fold iType into Value::VTy


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
e5828f1fa7c2691f747f5060ce11b8e55cea03ab 26-May-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Refactor common initialization code in private init() functions.

This is a first step in supplying append to basic block constructors
for all instruction types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
b4f4880eba456ed240beb6eb571339efbd0bf65f 12-Mar-2004 Chris Lattner <sabre@nondot.org> Know the opcode name of the select instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
786993c01ec8bdabe354fb62a083fedc9d7a087e 04-Feb-2004 Chris Lattner <sabre@nondot.org> If changing a parent, don't add then remove the object from the leak detector


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
3a534f200acf1353c3a8a0cdb2501b773c233525 13-Jan-2004 Chris Lattner <sabre@nondot.org> Implement new Instruction::isRelational method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
4b74c8333495c609fa81421df32e46db616672e1 20-Nov-2003 Chris Lattner <sabre@nondot.org> * Finegrainify namespacification
* Add new constructors to allow insertion of terminator instructions at the
end of basic blocks.
* Move a ReturnInst method out-of-line, so that the vtable and type info don't
need to be emitted to every translation unit that uses the class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
d0fde30ce850b78371fd1386338350591f9ff494 11-Nov-2003 Brian Gaeke <gaeke@uiuc.edu> Put all LLVM code into the llvm namespace, as per bug 109.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
b576c94c15af9a440f69d9d03c2afead7971118c 20-Oct-2003 John Criswell <criswell@uiuc.edu> Added LLVM project notice to the top of every C++ source file.
Header files will be on the way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
3b237fcd385a734b49bb54893ce256ba181e36f9 19-Oct-2003 Chris Lattner <sabre@nondot.org> Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9269 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
4d45bd007d0c3a3a6e5b3876b67fd495acb0db2b 18-Oct-2003 Chris Lattner <sabre@nondot.org> Add support for the new varargs intrinsics and instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
cf3056db0fee1db7921214b1f25cea04e959e105 13-Oct-2003 Chris Lattner <sabre@nondot.org> Regularize header file comments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
6b63452c3ad26678b32f93dbca55902a313ee4e9 10-Oct-2003 Misha Brukman <brukman+llvm@gmail.com> Fix spelling/grammar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
a6ce898dad724380b1444f664f8e422ba1e746d0 08-Sep-2003 Chris Lattner <sabre@nondot.org> Add support for unwind


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
ec127bb3526aefbf9008df3c3ce4c1f30fb77f08 31-Jul-2003 Tanya Lattner <tonic@nondot.org> *** empty log message ***


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
741bb0019de9aa28a731b4eef2422a3397f99cd0 31-Jul-2003 Tanya Lattner <tonic@nondot.org> Added function to determine if an Instruction may trap.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7442 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
8f77daef04355c00b78b645f5aae5694e7a8b631 08-May-2003 Chris Lattner <sabre@nondot.org> Add support for the new va_arg instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
6e6026b46569b01f8f6d4dcdb6c899c3a9c76b3e 20-Nov-2002 Chris Lattner <sabre@nondot.org> - Eliminated the deferred symbol table stuff in Module & Function, it really
wasn't an optimization and it was causing lots of bugs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
f2da7241f590aaae128ecce7732c6094084df2b6 31-Oct-2002 Chris Lattner <sabre@nondot.org> New isAssociative/isCommutative inspection methods, graciously contributed by
Casey Carter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
2aa831120c97fa4725aea97b0b3e67e8d95b4f38 10-Sep-2002 Chris Lattner <sabre@nondot.org> Add capability to insert an instruction into a basic block immediately after
it is created, as part of the ctor call.

Eliminate the GenericBinaryInst class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
d1e693f2a3883dacf213aa2b477540c57b53b714 08-Sep-2002 Chris Lattner <sabre@nondot.org> Enable "garbage detection" of LLVM objects. Now users should be obnoxious
warnings. If they accidentally leak LLVM Value's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
bded132d00ed626a6541b67ad101ef0fd47d3491 06-Sep-2002 Chris Lattner <sabre@nondot.org> Move code out of header files into .cpp files to make future changes easier


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
0513e9fe03f6e3c7d0272b8f4f82359e8d1a2e44 14-Aug-2002 Chris Lattner <sabre@nondot.org> Remove support for NOT instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
c105645c16f77ee20b853baf717073ad393dd4aa 15-Jul-2002 Vikram S. Adve <vadve@cs.uiuc.edu> Create a static version of Instruction::getOpcodeName(opCode) that
can be invoked with only an opcode (i.e., without an instruction).
Move all opCode->opCodeName translations there.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
7e70829632f82de15db187845666aaca6e04b792 25-Jun-2002 Chris Lattner <sabre@nondot.org> MEGAPATCH checkin.

For details, See: docs/2002-06-25-MegaPatchInfo.txt


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
2fbfdcffd3e0cf41422aaa6c526c37cb02b81341 07-Apr-2002 Chris Lattner <sabre@nondot.org> Change references to the Method class to be references to the Function
class. The Method class is obsolete (renamed) and all references to it
are being converted over to Function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
221d688a5ef21a22c2368c9fff0e92d7966c95e5 12-Feb-2002 Chris Lattner <sabre@nondot.org> Method.h no longer includes BasicBlock.h
Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
71947fdbc607c2eca3ddd456197c240ad5157f40 03-Feb-2002 Chris Lattner <sabre@nondot.org> Switch from MachineCodeForVMInstr model that is built into the VMCore library to an annotation based MAchineCodeForInstruction model

Instruction.cpp now has 0 lines of code generation related code in it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1658 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
699a7bfd6b0c789e7e04c0e182d7518b34b514b0 26-Jan-2002 Chris Lattner <sabre@nondot.org> Remove extraneous #includes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1588 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
697954c15da58bd8b186dbafdedd8b06db770201 20-Jan-2002 Chris Lattner <sabre@nondot.org> Changes to build successfully with GCC 3.02


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
e05bf2f49caa7682c8c4ce39e03e6c596fc63bcc 07-Sep-2001 Chris Lattner <sabre@nondot.org> * Support new setname interface
* Add assertion for sanity checking


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
7e583cfafeb07713e5ceadcfe28b70111a528d97 21-Jul-2001 Chris Lattner <sabre@nondot.org> Renamed include/llvm/Codegen to include/llvm/CodeGen


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
f9be9a9bf17e2b44e826fe6aa31e2fc691326bc4 21-Jul-2001 Chris Lattner <sabre@nondot.org> Fix code to be in a consistent style


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
cfad5df977f257299063309fa34f3c24831093c4 21-Jul-2001 Chris Lattner <sabre@nondot.org> Remove getTempValuesForMachineCode from the Instruction interface
to remove dependency on <vector>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
3344615555d57b2c16f36a3108b78ac89c7b4e7f 20-Jul-2001 Vikram S. Adve <vadve@cs.uiuc.edu> Added a representation of the machine instructions generated
for a VM instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
20554f11d0410496bc5c49744e0d45c71a1a3955 25-Jun-2001 Chris Lattner <sabre@nondot.org> Moved UnaryOperator::create to InstrTypes.cpp until there is an iUnaryOps.cpp
Moved BinaryOperator::create to iBinaryOperators.cpp
Add getUniqueName to SymbolTable


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
477c2ec3e01ddb67c3c079156f2ee2e1858bec42 08-Jun-2001 Chris Lattner <sabre@nondot.org> Moved getBinaryOperator to the BinaryOperator class and the getUnaryOperator
to the UnaryOperator class (from the Instruction class).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp
009505452b713ed2e3a8e99c5545a6e721c65495 06-Jun-2001 Chris Lattner <sabre@nondot.org> Initial revision


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/VMCore/Instruction.cpp