History log of /external/llvm/include/llvm/Instructions.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
986da6c3fdce52082288094f592e60ba165ae71c 25-Jun-2012 Nuno Lopes <nunoplopes@sapo.pt> add CallSite/CallInst/InvokeInst::hasFnAttr()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
47cbc4e0ee6098b7be3c60108000a979f1809949 23-Jun-2012 Stepan Dyatkovskiy <stpworld@narod.ru> Optimized usage of new SwitchInst case values (IntegersSubset type) in Local.cpp, Execution.cpp and BitcodeWriter.cpp.
I got about 1% of compile-time improvement on my machines (Ubuntu 11.10 i386 and Ubuntu 12.04 x64).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
35ac4b0c45dba62f59ebceddd6cd4605a27857f8 22-Jun-2012 Kaelyn Uhrain <rikka@google.com> Remove a variable that is unused when assertions aren't enabled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
43c3a4a7e76920c5646e473b72620acc7eb4ca5a 22-Jun-2012 Stepan Dyatkovskiy <stpworld@narod.ru> Fixed r158979.
Original message:
Performance optimizations:
- SwitchInst: case values stored separately from Operands List. It allows to make faster access to individual case value numbers or ranges.
- Optimized IntItem, added APInt value caching.
- Optimized IntegersSubsetGeneric: added optimizations for cases when subset is single number or when subset consists from single numbers only.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
37eeb058a30200101836d82098542d3d2fc4f3d5 22-Jun-2012 Duncan Sands <baldrick@free.fr> Revert commit 158979 (dyatkovskiy) since it is causing several buildbots to
fail. Original commit message:

Performance optimizations:
- SwitchInst: case values stored separately from Operands List. It allows to make faster access to individual case value numbers or ranges.
- Optimized IntItem, added APInt value caching.
- Optimized IntegersSubsetGeneric: added optimizations for cases when subset is single number or when subset consists from single numbers only.

On my machine these optimizations gave about 4-6% of compile-time improvement.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
7351256208c9ff2cb7b5bdcf4427229abe2a50a8 22-Jun-2012 Stepan Dyatkovskiy <stpworld@narod.ru> Performance optimizations:
- SwitchInst: case values stored separately from Operands List. It allows to make faster access to individual case value numbers or ranges.
- Optimized IntItem, added APInt value caching.
- Optimized IntegersSubsetGeneric: added optimizations for cases when subset is single number or when subset consists from single numbers only.

On my machine these optimizations gave about 4-6% of compile-time improvement.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
305b515c2787f47adecbe120e4b4bef55c5e5525 20-Jun-2012 Chandler Carruth <chandlerc@gmail.com> Remove 'static' from inline functions defined in header files.

There is a pretty staggering amount of this in LLVM's header files, this
is not all of the instances I'm afraid. These include all of the
functions that (in my build) are used by a non-static inline (or
external) function. Specifically, these issues were caught by the new
'-Winternal-linkage-in-inline' warning.

I'll try to just clean up the remainder of the clearly redundant "static
inline" cases on functions (not methods!) defined within headers if
I can do so in a reliable way.

There were even several cases of a missing 'inline' altogether, or my
personal favorite "static bool inline". Go figure. ;]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d9b0b025612992a0b724eeca8bdf10b1d7a5c355 02-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Fix typos found by http://github.com/lyda/misspell-check

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
43eb31bfae470b33bab9a6764b98b5e8a0beeda5 02-Jun-2012 Stepan Dyatkovskiy <stpworld@narod.ru> PR1255: case ranges.
IntRange converted from struct to class. So main change everywhere is replacement of ".Low/High" with ".getLow/getHigh()"



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f8d14c4ca3874890cfd8867d9557efca9511c98f 01-Jun-2012 Stepan Dyatkovskiy <stpworld@narod.ru> PR1255: case ranges.
IntItem cleanup. IntItemBase, IntItemConstantIntImp and IntItem merged into IntItem. All arithmetic operators was propogated from APInt. Also added comparison operators <,>,<=,>=. Currently you will find set of macros that propogates operators from APInt to IntItem in the beginning of IntegerSubset. Note that THESE MACROS WILL REMOVED after all passes will case-ranges compatible. Also note that these macros much smaller pain that something like this:
if (V->getValue().ugt(AnotherV->getValue()) { ... }

These changes made IntItem full featured integer object. It allows to make IntegerSubset class generic (move out all ConstantInt references inside and add unit-tests) in next commits.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
0aa32d5d0ff6cd65b6cff957858a79e2d2a614bd 29-May-2012 Stepan Dyatkovskiy <stpworld@narod.ru> ConstantRangesSet renamed to IntegersSubset. CRSBuilder renamed to IntegersSubsetMapping.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
484fc93eff0295b1aa52b9a64d22346580e4b0e2 28-May-2012 Stepan Dyatkovskiy <stpworld@narod.ru> PR1255: Case Ranges
Implemented IntItem - the wrapper around APInt. Why not to use APInt item directly right now?
1. It will very difficult to implement case ranges as series of small patches. We got several large and heavy patches. Each patch will about 90-120 kb. If you replace ConstantInt with APInt in SwitchInst you will need to changes at the same time all Readers,Writers and absolutely all passes that uses SwitchInst.
2. We can implement APInt pool inside and save memory space. E.g. we use several switches that works with 256 bit items (switch on signatures, or strings). We can avoid value duplicates in this case.
3. IntItem can be easyly easily replaced with APInt.
4. Currenly we can interpret IntItem both as ConstantInt and as APInt. It allows to provide SwitchInst methods that works with ConstantInt for non-updated passes.

Why I need it right now? Currently I need to update SimplifyCFG pass (EqualityComparisons). I need to work with APInts directly a lot, so peaces of code
ConstantInt *V = ...;
if (V->getValue().ugt(AnotherV->getValue()) {
...
}
will look awful. Much more better this way:
IntItem V = ConstantIntVal->getValue();
if (AnotherV < V) {
}

Of course any reviews are welcome.

P.S.: I'm also going to rename ConstantRangesSet to IntegersSubset, and CRSBuilder to IntegersSubsetMapping (allows to map individual subsets of integers to the BasicBlocks).
Since in future these classes will founded on APInt, it will possible to use them in more generic ways.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
ff208a79ced0377f5f6474b571a6a2168643e1e1 28-May-2012 Stepan Dyatkovskiy <stpworld@narod.ru> SwitchInst: Due to bad readability case iterators definition was moved to the end of SwitchInst.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
734dde8e051d34ac34cc58eb31cf2e6fa3ac3f37 14-May-2012 Stepan Dyatkovskiy <stpworld@narod.ru> SwitchInst cosmetics: renamed "Hash" method to "hash"



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
1cce5bf8ef9ee3dc157ae5d8778f84a7a0d1d8b9 12-May-2012 Stepan Dyatkovskiy <stpworld@narod.ru> Recommited r156374 with critical fixes in BitcodeReader/Writer:
Ordinary patch for PR1255.
Added new case-ranges orientated methods for adding/removing cases in SwitchInst. After this patch cases will internally representated as ConstantArray-s instead of ConstantInt, externally cases wrapped within the ConstantRangesSet object.
Old methods of SwitchInst are also works well, but marked as deprecated. So on this stage we have no side effects except that I added support for case ranges in BitcodeReader/Writer, of course test for Bitcode is also added. Old "switch" format is also supported.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
1f9838347fdcc75cead228ec1758063074b89c6a 08-May-2012 Stepan Dyatkovskiy <stpworld@narod.ru> Rejected r156374: Ordinary PR1255 patch. Due to clang-x86_64-debian-fnt buildbot failure.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
85a4406959fe7794062d62d2f17226235630eee1 08-May-2012 Stepan Dyatkovskiy <stpworld@narod.ru> Ordinary patch for PR1255.
Added new case-ranges orientated methods for adding/removing cases in SwitchInst. After this patch cases will internally representated as ConstantArray-s instead of ConstantInt, externally cases wrapped within the ConstantRangesSet object.
Old methods of SwitchInst are also works well, but marked as deprecated. So on this stage we have no side effects except that I added support for case ranges in BitcodeReader/Writer, of course test for Bitcode is also added. Old "switch" format is also supported.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
6bb5212b6e0ed2607f08217df7468cc4492f3197 09-Apr-2012 David Blaikie <dblaikie@gmail.com> Fix accidentally constant conditions found by uncommitted improvements to -Wconstant-conversion.

A couple of cases where we were accidentally creating constant conditions by
something like "x == a || b" instead of "x == a || x == b". In one case a
conditional & then unreachable was used - I transformed this into a direct
assert instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c347b6f4b600368751f6f79d270bf58f7d54a348 13-Mar-2012 Stepan Dyatkovskiy <stpworld@narod.ru> Fixed comments for SwitchInst::addCase and for SwitchInst::removeCase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
3d3abe0852d5f499bed7ab014519dd582a0a795d 11-Mar-2012 Stepan Dyatkovskiy <stpworld@narod.ru> llvm::SwitchInst
Renamed methods caseBegin, caseEnd and caseDefault with case_begin, case_end, and case_default.
Added some notes relative to case iterators.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
a13fb621bbbdc07d24ffbe1e771d52ff2111e2b7 11-Mar-2012 Aaron Ballman <aaron@aaronballman.com> Fixing a compile warning triggered in MSVC about constant truncation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c10fa6c801e48771b5eade50afc2fe6abaf08227 08-Mar-2012 Stepan Dyatkovskiy <stpworld@narod.ru> Taken into account Duncan's comments for r149481 dated by 2nd Feb 2012:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120130/136146.html

Implemented CaseIterator and it solves almost all described issues: we don't need to mix operand/case/successor indexing anymore. Base iterator class is implemented as a template since it may be initialized either from "const SwitchInst*" or from "SwitchInst*".

ConstCaseIt is just a read-only iterator.
CaseIt is read-write iterator; it allows to change case successor and case value.

Usage of iterator allows totally remove resolveXXXX methods. All indexing convertions done automatically inside the iterator's getters.

Main way of iterator usage looks like this:
SwitchInst *SI = ... // intialize it somehow

for (SwitchInst::CaseIt i = SI->caseBegin(), e = SI->caseEnd(); i != e; ++i) {
BasicBlock *BB = i.getCaseSuccessor();
ConstantInt *V = i.getCaseValue();
// Do something.
}

If you want to convert case number to TerminatorInst successor index, just use getSuccessorIndex iterator's method.
If you want initialize iterator from TerminatorInst successor index, use CaseIt::fromSuccessorIndex(...) method.

There are also related changes in llvm-clients: klee and clang.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
24473120a253a05f3601cd3373403b47e6d03d41 01-Feb-2012 Stepan Dyatkovskiy <stpworld@narod.ru> SwitchInst refactoring.
The purpose of refactoring is to hide operand roles from SwitchInst user (programmer). If you want to play with operands directly, probably you will need lower level methods than SwitchInst ones (TerminatorInst or may be User). After this patch we can reorganize SwitchInst operands and successors as we want.

What was done:

1. Changed semantics of index inside the getCaseValue method:
getCaseValue(0) means "get first case", not a condition. Use getCondition() if you want to resolve the condition. I propose don't mix SwitchInst case indexing with low level indexing (TI successors indexing, User's operands indexing), since it may be dangerous.
2. By the same reason findCaseValue(ConstantInt*) returns actual number of case value. 0 means first case, not default. If there is no case with given value, ErrorIndex will returned.
3. Added getCaseSuccessor method. I propose to avoid usage of TerminatorInst::getSuccessor if you want to resolve case successor BB. Use getCaseSuccessor instead, since internal SwitchInst organization of operands/successors is hidden and may be changed in any moment.
4. Added resolveSuccessorIndex and resolveCaseIndex. The main purpose of these methods is to see how case successors are really mapped in TerminatorInst.
4.1 "resolveSuccessorIndex" was created if you need to level down from SwitchInst to TerminatorInst. It returns TerminatorInst's successor index for given case successor.
4.2 "resolveCaseIndex" converts low level successors index to case index that curresponds to the given successor.

Note: There are also related compatability fix patches for dragonegg, klee, llvm-gcc-4.0, llvm-gcc-4.2, safecode, clang.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
56243b89e7d5072d2d5498f806679d19ea483dac 26-Jan-2012 Chris Lattner <sabre@nondot.org> eliminate the Constant::getVectorElements method. There are better (and
more robust) ways to do what it was doing now. Also, add static methods
for decoding a ShuffleVector mask.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
83694a984c153a0d78dcfb47d464c9a1561c22ef 26-Jan-2012 Chris Lattner <sabre@nondot.org> add some helper methods to ShuffleVectorInst and enhance its
"isValidOperands" and "getMaskValue" methods to allow
ConstantDataSequential.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
1608769abeb1430dc34f31ffac0d9850f99ae36a 05-Dec-2011 Nadav Rotem <nadav.rotem@intel.com> Add support for vectors of pointers.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
602650c98822371d4a34b00353ec71051621b7fb 17-Oct-2011 Chandler Carruth <chandlerc@gmail.com> Add a routine to swap branch instruction operands, and update any
profile metadata at the same time. Use it to preserve metadata attached
to a branch when re-writing it in InstCombine.

Add metadata to the canonicalize_branch InstCombine test, and check that
it is tranformed correctly.

Reviewed by Nick Lewycky!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
11f1a8335e207971f66eb60609e16b8719be5450 05-Oct-2011 Rafael Espindola <rafael.espindola@gmail.com> Check for the returns_twice attribute in callsFunctionThatReturnsTwice. This
fixes PR11038, but there are still some cleanups to be done.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
bb5a7442e362776621112dc9453e546a55878e79 29-Sep-2011 Eli Friedman <eli.friedman@gmail.com> Clean up uses of switch instructions so they are not dependent on the operand ordering. Patch by Stepan Dyatkovskiy.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
21006d40ac9ec7715bca2095451075a83773dc52 10-Aug-2011 Eli Friedman <eli.friedman@gmail.com> Representation of 'atomic load' and 'atomic store' in IR.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137170 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
7379b6650008fba555d5472d5c76e8efc59e8a21 28-Jul-2011 Bill Wendling <isanbard@gmail.com> The personality function should be a Function* and not just a Value*.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
28d735230f0b3ac964f07e91594fb6c38772f0e6 28-Jul-2011 Bill Wendling <isanbard@gmail.com> Make sure that the landingpad instruction takes a Constant* as the clause's value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
7f66c45f35bdfc69c41f2e1b3b9891a4eca0c0b0 28-Jul-2011 Bill Wendling <isanbard@gmail.com> Add a couple of convenience functions:

* InvokeInst: Get the landingpad instruction associated with this invoke.
* LandingPadInst: A method to reserve extra space for clauses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
a9203109f4ac95aa7e9624f2838e3d89623ec902 25-Jul-2011 Jay Foad <jay.foad@gmail.com> Convert GetElementPtrInst to use ArrayRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
a3efbb15ddd5aa9006564cd79086723640084878 15-Jul-2011 Jay Foad <jay.foad@gmail.com> Convert CallInst and InvokeInst APIs to use ArrayRef.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
1afcace3a3a138b1b18e5c6270caa8dae2261ae2 09-Jul-2011 Chris Lattner <sabre@nondot.org> Land the long talked about "type system rewrite" patch. This
patch brings numerous advantages to LLVM. One way to look at it
is through diffstat:
109 files changed, 3005 insertions(+), 5906 deletions(-)

Removing almost 3K lines of code is a good thing. Other advantages
include:

1. Value::getType() is a simple load that can be CSE'd, not a mutating
union-find operation.
2. Types a uniqued and never move once created, defining away PATypeHolder.
3. Structs can be "named" now, and their name is part of the identity that
uniques them. This means that the compiler doesn't merge them structurally
which makes the IR much less confusing.
4. Now that there is no way to get a cycle in a type graph without a named
struct type, "upreferences" go away.
5. Type refinement is completely gone, which should make LTO much MUCH faster
in some common cases with C++ code.
6. Types are now generally immutable, so we can use "Type *" instead
"const Type *" everywhere.

Downsides of this patch are that it removes some functions from the C API,
so people using those will have to upgrade to (not yet added) new API.
"LLVM 3.0" is the right time to do this.

There are still some cleanups pending after this, this patch is large enough
as-is.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
95c3e48f9557adb6064d580684bb14cacec2f826 23-Jun-2011 Jay Foad <jay.foad@gmail.com> Reinstate r133513 (reverted in r133700) with an additional fix for a
-Wshorten-64-to-32 warning in Instructions.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
e59fbc04ad343435705c28b3cf7038d65fe4af0a 23-Jun-2011 Eric Christopher <echristo@apple.com> Revert r133513:

"Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512)."

Due to some additional warnings.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
cd35e09a4a3c640b9da0b1dfe3548a605c929ae5 21-Jun-2011 Jay Foad <jay.foad@gmail.com> Reinstate r133435 and r133449 (reverted in r133499) now that the clang
self-hosted build failure has been fixed (r133512).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
a88a0ca8082006b37d14d8aee4a644b20bae8bc9 21-Jun-2011 Chad Rosier <mcrosier@apple.com> Revert r133435 and r133449 to appease buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
72f5f313d87558958696ce69593d82efcdfa9128 20-Jun-2011 Jay Foad <jay.foad@gmail.com> Change how PHINodes store their operands.

Change PHINodes to store simple pointers to their incoming basic blocks,
instead of full-blown Uses.

Note that this loses an optimization in SplitCriticalEdge(), because we
can no longer walk the use list of a BasicBlock to find phi nodes. See
the comment I removed starting "However, the foreach loop is slow for
blocks with lots of predecessors".

Extend replaceAllUsesWith() on a BasicBlock to also update any phi
nodes in the block's successors. This mimics what would have happened
when PHINodes were proper Users of their incoming blocks. (Note that
this only works if OldBB->replaceAllUsesWith(NewBB) is called when
OldBB still has a terminator instruction, so it still has some
successors.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
7a2bdde0a0eebcd2125055e0eacaca040f0b766c 15-Apr-2011 Chris Lattner <sabre@nondot.org> Fix a ton of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
8891ed7ac95bfe7c7ee312dc168daf64dcb897b6 01-Apr-2011 Jay Foad <jay.foad@gmail.com> Various Instructions' resizeOperands() methods are only used to grow the
list of operands. Simplify and rename them accordingly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
4499176789a0e33b1d4ec0517b0a3dd8a58eef85 30-Mar-2011 Jay Foad <jay.foad@gmail.com> Add a comment on PHINode::Create().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
3ecfc861b4365f341c5c969b40e1afccde676e6f 30-Mar-2011 Jay Foad <jay.foad@gmail.com> Remove PHINode::reserveOperandSpace(). Instead, add a parameter to
PHINode::Create() giving the (known or expected) number of operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
0faa60938a66a09820ca21d55e7b5926bc58d59d 01-Feb-2011 Jay Foad <jay.foad@gmail.com> Make SwitchInst::removeCase() more efficient.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
25052d8d64f18a85d6a84e0e010f6ba3eba0760d 14-Jan-2011 Jay Foad <jay.foad@gmail.com> Remove casts between Value** and Constant**, which won't work if a
static_cast from Constant* to Value* has to adjust the "this" pointer.
This is groundwork for PR889.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
67c619ba3eae68dcdb3f9340d82b33173aa0c256 11-Jan-2011 Jay Foad <jay.foad@gmail.com> FixedNumOperandTraits and VariadicOperandTraits assumed that, given a
"this" pointer for any subclass of User, you could static_cast it to
User* and then reinterpret_cast that to Use* to get the end of the
operand list. This isn't a safe assumption in general, because the
static_cast might adjust the "this" pointer. Fixed by having these
OperandTraits classes take an extra template parameter, which is the
subclass of User. This is groundwork for PR889.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
8e3914d12e939d7c686bd121b0e2b2d39ed126d2 07-Jan-2011 Jay Foad <jay.foad@gmail.com> Simplify the allocation and freeing of Users' operand lists, now that
every BranchInst has a fixed number of operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
43eaadeea5217995c153078c04b77183d4c8c494 07-Jan-2011 Jay Foad <jay.foad@gmail.com> Remove the "ugly" method BranchInst::setUnconditionalDest().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
af72c62d4b4e1f16e5b712895abc4eb4142b3cef 03-Dec-2010 Frits van Bommel <fvbommel@gmail.com> Fix paste-o in ExtractValueInst::getIndexedType() comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
aa6e350c88b10d3cece4296be45ed6b458dcf05a 17-Nov-2010 Chris Lattner <sabre@nondot.org> fix PR8613 - Copy constructor of SwitchInst does not call SwitchInst::init


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
ff10341183adf74760e6118a55cbd1debf50f90f 17-Nov-2010 Duncan Sands <baldrick@free.fr> Fix a layering violation: hasConstantValue, which is part of the PHINode
class, uses DominatorTree which is an analysis. This change moves all of
the tricky hasConstantValue logic to SimplifyInstruction, and replaces it
with a very simple literal implementation. I already taught users of
hasConstantValue that need tricky stuff to use SimplifyInstruction instead.
I didn't update InlineFunction because the IR looks like it might be in a
funky state at the point it calls hasConstantValue, which makes calling
SimplifyInstruction dangerous since it can in theory do a lot of tricky
reasoning. This may be a pessimization, for example in the case where
all phi node operands are either undef or a fixed constant.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
eff0581583ef10e2872e9baf537a04b67d992101 14-Nov-2010 Duncan Sands <baldrick@free.fr> If dom tree information is available, make it possible to pass
it to get better phi node simplification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d33b77bbb04d8f90e58cd83f695745ba21178d41 27-Oct-2010 Mikhail Glushenkov <foldr@codedgers.com> It is confusing to call a random-access iterator 'InputIterator'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
0da14f7a9d31ae1c7bebe8ef1fe0b593ac828c1a 27-Oct-2010 Mikhail Glushenkov <foldr@codedgers.com> Trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
8faa6af43d348df4d8dbce9432073ec977edc2ae 06-Oct-2010 Dan Gohman <gohman@apple.com> Remove compatibilty code for old-style multiple return values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
e744541788298d0ef129aa2d38e9aef865218311 09-Sep-2010 Dan Gohman <gohman@apple.com> Add a getPointerOperand() helper function to VAArgInst, for consistency
with LoadInst and StoreInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
6f615f8d48097c44524b73697a8d4a5438feb8d1 07-Aug-2010 Owen Anderson <resistor@mac.com> Add a predicate to determine if a call is an inline asm statement.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
3ecf355c7a6f6f559f3c85b46d041ffda5163a8c 05-Aug-2010 Gabor Greif <ggreif@gmail.com> remove the private hack from CallInst, it was not supposed to hit the branch anyway

as a positive consequence the CallSite::getCallee() methods now can be rewritten to be
a bit more efficient

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
0114b9990ae11d49356513e781a375803df95208 31-Jul-2010 Gabor Greif <ggreif@gmail.com> doxygenize argument accessors


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
5d414b44fc7720a040357ec43f111f8ac53a59f4 28-Jul-2010 Dan Gohman <gohman@apple.com> Move MaximumAlignment to Value.h, now that GlobalValue.h needs it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
138aa2a82bc6de611f28e51332fb0a30262a58e3 28-Jul-2010 Dan Gohman <gohman@apple.com> Define a maximum supported alignment value for load, store, and
alloca instructions (constrained by their internal encoding),
and add error checking for it. Fix an instcombine bug which
generated huge alignment values (null is infinitely aligned).
This fixes undefined behavior noticed by John Regehr.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c61f6b424bdc7b065e6a2064b7c2a87a64c10593 21-Jul-2010 Gabor Greif <ggreif@gmail.com> restore aesthetics

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
a6aac4c5bc22bb10c7adb11eee3f82c703af7002 16-Jul-2010 Gabor Greif <ggreif@gmail.com> eliminate CallInst::ArgOffset

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
63d024fc9a4f89987fa2cf7ab466ea17ec78ed14 13-Jul-2010 Gabor Greif <ggreif@gmail.com> rotate CallInst operands

with this commit the callee moves to the end of
the operand array (from the start) and the call
arguments now start at index 0 (formerly 1)

this ordering is now consistent with InvokeInst

this commit only flips the switch,
functionally it is equivalent to
r101465

I intend to commit several cleanups after a few
days of soak period



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
5a30a8574cbcd3b385b1e8681c6a5c45856efb38 12-Jul-2010 Chris Lattner <sabre@nondot.org> make the prototypes for CreateMalloc and CreateFree more consistent. Patch
by Hans Vandierendonck from PR7605


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
dc4f391773041c164536bf0ed334230142e49386 07-Jul-2010 Gabor Greif <ggreif@gmail.com> minor cosmetic changes that happened to sit in my tree

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
e9e1215d94d3afa12f5d49c415a80bd4721c97ab 06-Jul-2010 Gabor Greif <ggreif@gmail.com> second round of low-level interface squeeze-out:
making all of CallInst's low-level operand accessors
private

If you get compile errors I strongly urge you to
update your code.


I tried to write the necessary clues into the
header where the compiler may point to, but no
guarantees. It works for my GCC.

You have several options to update your code:

- you can use the v2.8 ArgOperand accessors
- you can go via a temporary CallSite
- you can upcast to, say, User and call its
low-level accessors if your code is definitely
operand-order agnostic.

If you run into serious problems, please
comment in below thread (and back out this
revision only if absolutely necessary):

<http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b9933b8f8f218f8a65a66bbd98b38ba96c934ac7 06-Jul-2010 Nick Lewycky <nicholas@mxc.ca> Add default value to setIsNoInline for parity with the other methods of its
kind.

Also fold some functions that fit on a line to a single line.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
69439cb919e5f182009c445154cf28b6866e7ecb 04-Jul-2010 Gabor Greif <ggreif@gmail.com> back out r107580, I have seen what I wanted

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
4de8ba8940171f442d09e84cd597bf8bd45a8701 04-Jul-2010 Gabor Greif <ggreif@gmail.com> [another test commit, just to tickle the selfhost buildbots; I'll back out in a few minutes]

second round of low-level interface squeeze-out:
making all of CallInst's low-level operand accessors
private

If you get compile errors I strongly urge you to
update your code.


I tried to write the necessary clues into the
header where the compiler may point to, but no
guarantees. It works for my GCC.

You have several options to update your code:

- you can use the v2.8 ArgOperand accessors
- you can go via a temporary CallSite
- you can upcast to, say, User and call its
low-level accessors if your code is definitely
operand-order agnostic.

If you run into serious problems, please
comment in below thread (and back out this
revision only if absolutely necessary):

<http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
524e92b0fdb14734d468bf240febced33eb01427 02-Jul-2010 Gabor Greif <ggreif@gmail.com> back out r107480, it was just testing the waters anyway...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
033e75f030d5b53c999ab54d704b3450edb64ffe 02-Jul-2010 Gabor Greif <ggreif@gmail.com> [test commit, just to tickle the selfhost buildbots; I'll back out in a few minutes]

second round of low-level interface squeeze-out:
making all of CallInst's low-level operand accessors
private

If you get compile errors I strongly urge you to
update your code.


I tried to write the necessary clues into the
header where the compiler may point to, but no
guarantees. It works for my GCC.

You have several options to update your code:

- you can use the v2.8 ArgOperand accessors
- you can go via a temporary CallSite
- you can upcast to, say, User and call its
low-level accessors if your code is definitely
operand-order agnostic.

If you run into serious problems, please
comment in below thread (and back out this
revision only if absolutely necessary):

<http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107480 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
0f66d4be04787906fb3a40ff572bc8c16a41bb96 01-Jul-2010 Gabor Greif <ggreif@gmail.com> evil hack to coerce external users (projects)
to update their code to high-level interfaces

If you get compile errors in your project
please update your code according to the
comments.

This is a re-commit of r107396 which causes
compile errors for the indicated usage patterns
instead of link errors (which are less easy to
fix because of missing source location).

If you get compile errors please perform
following functionally equivalent transformations:
- getOperand(0) ---> getCalledValue()
- setOperand(0, V) ---> setCalledFunction(V)

This will make your code more future-proof
and avoid potentially hard-to-debug bugs.

please refer to this thread on llvm-dev:

<http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271>



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
194db3587c4337f65cb8dd0cc0ee53bc1333fc8d 01-Jul-2010 Gabor Greif <ggreif@gmail.com> back out r107396 for now, it needs another minor change to function as advertised

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
0ca182b823b738cd5c8df3744fb245e11786ba63 01-Jul-2010 Gabor Greif <ggreif@gmail.com> evil hack to coerce external users (projects)
to update their code to high-level interfaces

If you get compile errors in your project
please update your code according to the
comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
16575de25952a5a1f4bd8476609abd0ce4e64631 29-Jun-2010 Gabor Greif <ggreif@gmail.com> minor cosmetics

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f500cbdcb17a6739d75f75a746f5d5c522fa7e31 29-Jun-2010 Gabor Greif <ggreif@gmail.com> use ArgOffset constant to prepare for operand rotation

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
710ac0711fac5d6d64ca8eab5a100bf4578d21b9 28-Jun-2010 Gabor Greif <ggreif@gmail.com> extend ArgOperand interface: setArgOperand
(in both CallInst and InvokeInst)

also add a (short-lived) constant to CallInst, that names
the operand index of the first call argument. This is
strictly transitional and should not be used for new code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
41c9c0ea32751d71f026acedd1241432b37dcc8e 27-Jun-2010 Chris Lattner <sabre@nondot.org> add some named accessors for StoreInst


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
22a5b298201d62daea3e06718469d8ad017895e1 07-Jun-2010 Bill Wendling <isanbard@gmail.com> Create new accessors to get arguments for call/invoke instructions. It breaks
encapsulation to force the users of these classes to know about the internal
data structure of the Operands structure. It also can lead to errors, like in
the MSIL writer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
551754c4958086cc6910da7c950f2875e212f5cf 17-Apr-2010 Eric Christopher <echristo@apple.com> Revert 101465, it broke internal OpenGL testing.

Probably the best way to know that all getOperand() calls have been handled
is to replace that API instead of updating.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
4ec2258ffb495d7ce00177e447740ef1123a27db 16-Apr-2010 Gabor Greif <ggreif@gmail.com> reapply r101434
with a fix for self-hosting

rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
607a7ab3da72a2eb53553a520507cbb8068dd1d8 16-Apr-2010 Gabor Greif <ggreif@gmail.com> back out r101423 and r101397, they break llvm-gcc self-host on darwin10

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
2ff961f66816daab8bbc58a19025161d969821c2 15-Apr-2010 Gabor Greif <ggreif@gmail.com> reapply r101364, which has been backed out in r101368
with a fix

rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
9ee17208115482441953127615231c59a2f4d052 15-Apr-2010 Gabor Greif <ggreif@gmail.com> back out r101364, as it trips the linux nightlybot on some clang C++ tests

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
165dac08d1bb8428b32a5f39cdd3dbee2888987f 15-Apr-2010 Gabor Greif <ggreif@gmail.com> rotate CallInst operands, i.e. move callee to the back
of the operand array

the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f27e6088a3af277d5aeed7b554192cc62b7b40fd 25-Mar-2010 Eric Christopher <echristo@apple.com> Reapply r99451 with a fix to move the NoInline check to the cost functions
instead of InlineFunction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
0623e90398153be61226ad19f1b40d3817874526 25-Mar-2010 Eric Christopher <echristo@apple.com> Temporarily revert this, it's causing an issue with an internal project.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c9f7500d1752feac7cece26d20007a99d21f677c 24-Mar-2010 Gabor Greif <ggreif@gmail.com> Finally land the InvokeInst operand reordering.
I have audited all getOperandNo calls now, fixing
hidden assumptions. CallSite related uglyness will
be eliminated successively.

Note this patch has a long and griveous history,
for all the back-and-forths have a look at
CallSite.h's log.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
a54934ae9d278448fb557366eb4a79a8cb3fc606 23-Mar-2010 Chris Lattner <sabre@nondot.org> add some accessors to callsite/callinst/invokeinst to check
for the noinline attribute, and make the inliner refuse to
inline a call site when the call site is marked noinline even
if the callee isn't. This fixes PR6682.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
1cde4af15712f6ccdb81ab540df800cda90d0d74 22-Mar-2010 Gabor Greif <ggreif@gmail.com> backing out r99170 because it still fails on clang-x86_64-darwin10-fnt

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
9b1061e2e3c3a463aa251e2e6631d5e4313a7ac6 22-Mar-2010 Gabor Greif <ggreif@gmail.com> Now that hopefully all direct accesses to InvokeInst operands are fixed
we can reapply the InvokeInst operand reordering patch. (see r98957).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99170 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
654c06f6457f80428e40810ad251c412462731e4 20-Mar-2010 Gabor Greif <ggreif@gmail.com> Add a setCalledFunction member to InvokeInst (like in CallInst)
and use this (as well as getCalledValue) to access the callee,
instead of {g|s}etOperand(0).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99084 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
cc52ed0c4feec63e7a127462b78fd4a6b217f469 19-Mar-2010 Gabor Greif <ggreif@gmail.com> back out r98957, it broke http://smooshlab.apple.com:8010/builders/clang-x86_64-darwin10-fnt/builds/703 in the nightly test suite

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f4f10e37791cef519a057d10d12f688333f554a7 19-Mar-2010 Gabor Greif <ggreif@gmail.com> Recommit r80858 again (which has been backed out in r80871).

This time I did a self-hosted bootstrap on Linux x86-64,
with no problems. Let's see how darwin 64-bit self-hosting
goes. At the first sign of failure I'll back this out.

Maybe the valgrind bots give me a hint of what may be wrong
(it at all).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
138acfe353ed8b895de093a4c118b01093b6fbfb 16-Mar-2010 Gabor Greif <ggreif@gmail.com> fix PR6589
adjusted unittest

I have added some doxygen to OptionalOperandTraits,
so hopefully there will be no confusion in the future.

Incidentally OptionalOperandTraits is not used any more (IIUC),
but the obvious client would be BranchInstr, and I plan
to rearrange it that way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
fb76fe09297ee292129e44d723127f2408602a3d 22-Feb-2010 Dan Gohman <gohman@apple.com> Fix various doxygen warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
1df9859c40492511b8aa4321eb76496005d3b75b 16-Feb-2010 Duncan Sands <baldrick@free.fr> There are two ways of checking for a given type, for example isa<PointerType>(T)
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b0bc6c361da9009e8414efde317d9bbff755f6c0 15-Feb-2010 Duncan Sands <baldrick@free.fr> Uniformize the names of type predicates: rather than having isFloatTy and
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
cafe9bba32aeed16e8e3db28b4cd4ff13160438f 29-Dec-2009 Chris Lattner <sabre@nondot.org> add a layer of accessors around the Value::SubClassData member, and use
a convention (shadowing the setter with private forwarding function) to
prevent subclasses from accidentally using it.

This exposed some bogosity in ConstantExprs, which was propaging the
opcode of the constant expr into the NUW/NSW/Exact field in the
getWithOperands/getWithOperandReplaced methods.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
9d0b704e3ea418441001dac4d1a56c2c224cdbf5 07-Nov-2009 Victor Hernandez <vhernandez@apple.com> Re-commit r86077 now that r86290 fixes the 179.art and 175.vpr ARM regressions.

Here is the original commit message:

This commit updates malloc optimizations to operate on malloc calls that have constant int size arguments.

Update CreateMalloc so that its callers specify the size to allocate:
MallocInst-autoupgrade users use non-TargetData-computed allocation sizes.
Optimization uses use TargetData to compute the allocation size.

Now that malloc calls can have constant sizes, update isArrayMallocHelper() to use TargetData to determine the size of the malloced type and the size of malloced arrays.
Extend getMallocType() to support malloc calls that have non-bitcast uses.

Update OptimizeGlobalAddressOfMalloc() to optimize malloc calls that have non-bitcast uses. The bitcast use of a malloc call has to be treated specially here because the uses of the bitcast need to be replaced and the bitcast needs to be erased (just like the malloc call) for OptimizeGlobalAddressOfMalloc() to work correctly.

Update PerformHeapAllocSRoA() to optimize malloc calls that have non-bitcast uses. The bitcast use of the malloc is not handled specially here because ReplaceUsesOfMallocWithGlobal replaces through the bitcast use.

Update OptimizeOnceStoredGlobal() to not care about the malloc calls' bitcast use.

Update all globalopt malloc tests to not rely on autoupgraded-MallocInsts, but instead use explicit malloc calls with correct allocation sizes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
df98761d08ae091420b7e9c1366de7684400fc36 06-Nov-2009 Victor Hernandez <vhernandez@apple.com> Revert r86077 because it caused crashes in 179.art and 175.vpr on ARM

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
24f934d0551e33508c4ffd24318ea0e970db9810 05-Nov-2009 Victor Hernandez <vhernandez@apple.com> Update CreateMalloc so that its callers specify the size to allocate:
MallocInst-autoupgrade users use non-TargetData-computed allocation sizes.
Optimization uses use TargetData to compute the allocation size.

Now that malloc calls can have constant sizes, update isArrayMallocHelper() to use TargetData to determine the size of the malloced type and the size of malloced arrays.
Extend getMallocType() to support malloc calls that have non-bitcast uses.

Update OptimizeGlobalAddressOfMalloc() to optimize malloc calls that have non-bitcast uses. The bitcast use of a malloc call has to be treated specially here because the uses of the bitcast need to be replaced and the bitcast needs to be erased (just like the malloc call) for OptimizeGlobalAddressOfMalloc() to work correctly.

Update PerformHeapAllocSRoA() to optimize malloc calls that have non-bitcast uses. The bitcast use of the malloc is not handled specially here because ReplaceUsesOfMallocWithGlobal replaces through the bitcast use.

Update OptimizeOnceStoredGlobal() to not care about the malloc calls' bitcast use.

Update all globalopt malloc tests to not rely on autoupgraded-MallocInsts, but instead use explicit malloc calls with correct allocation sizes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
37459e508b6d0ca342923ca84d0cfba410094fb3 27-Oct-2009 Chris Lattner <sabre@nondot.org> trim another #include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
4b122938c96cef43c096d58c8906b6744ee325e2 27-Oct-2009 Chris Lattner <sabre@nondot.org> remove an unneeded #include.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
4a134afaef984c403f6d6b1da4d301666d899b92 25-Oct-2009 Nick Lewycky <nicholas@mxc.ca> Remove ICmpInst::isSignedPredicate which was a reimplementation
CmpInst::isSigned.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
44df023d5f56e301d6280df20e36e68b1c4a761e 25-Oct-2009 Nick Lewycky <nicholas@mxc.ca> Sink isTrueWhenEqual from ICmpInst to CmpInst. Add a matching isFalseWhenEqual
which is equal to !isTrueWhenEqual for ints but not for floats.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85036 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
66284e063a1e46500acae48bdc0e4a00652021d1 24-Oct-2009 Victor Hernandez <vhernandez@apple.com> Auto-upgrade free instructions to calls to the builtin free function.
Update all analysis passes and transforms to treat free calls just like FreeInst.
Remove RaiseAllocations and all its tests since FreeInst no longer needs to be raised.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
14d8038518c535551b4f5eaf2d5caab038a0ed31 18-Oct-2009 Chris Lattner <sabre@nondot.org> punctuate properly


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
3fc35c594cbe48070ad69eaa2fdca1e9424c9fd4 18-Oct-2009 Nick Lewycky <nicholas@mxc.ca> Fix test/Bindings/Ocaml/vmcore.ml. When IRBuilder::CreateMalloc was removed,
LLVMBuildMalloc was reimplemented but with the bug that it didn't insert the
resulting instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
13ad5aaaff8a446758b402fd5e9aea22f5bc5682 17-Oct-2009 Victor Hernandez <vhernandez@apple.com> Autoupgrade malloc insts to malloc calls.
Update testcases that rely on malloc insts being present.

Also prematurely remove MallocInst handling from IndMemRemoval and RaiseAllocations to help pass tests in this incremental step.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
fc61aeff2c5d964d81a63b709b5e1a50a5519e83 10-Oct-2009 Chris Lattner <sabre@nondot.org> change some static_cast into cast, pointed out by Gabor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
ceaa457a9d1ec567862e71125447479304942c12 10-Oct-2009 Chris Lattner <sabre@nondot.org> add a version of PHINode::getIncomingBlock that takes a raw
Use, to complement the version that takes a use_iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
ae05e7d945aee2846370313e90d2a735f9696a71 27-Sep-2009 Nick Lewycky <nicholas@mxc.ca> Round out the API for the new optimization flags.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
6776064d190701c5bae4d5403939eed2e480d1cd 27-Sep-2009 Nick Lewycky <nicholas@mxc.ca> Instruction::clone does not need to take an LLVMContext&. Remove that and
update all the callers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
3e0c99a26f365bddb667124db40a5734e35c5a2d 25-Sep-2009 Victor Hernandez <vhernandez@apple.com> Revert 82694 "Auto-upgrade malloc instructions to malloc calls." because it causes regressions in the nightly tests.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
96b930ddc7f0df9e278a5cb65ad77a559a20964e 24-Sep-2009 Victor Hernandez <vhernandez@apple.com> Auto-upgrade malloc instructions to malloc calls.

Reviewed by Devang Patel.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
fabcb9127f278a77b8aae5673be1115390c55050 10-Sep-2009 Evan Cheng <evan.cheng@apple.com> Add malloc call utility functions. Patch by Victor Hernandez.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c8dee3f7ad60e76bdac597ee47f8d9e3470cc8ff 08-Sep-2009 Chris Lattner <sabre@nondot.org> fix pasto


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
971591297861ddeb245f90c48ec7c24726efb9a9 08-Sep-2009 Chris Lattner <sabre@nondot.org> add getVectorOperand/getIndexOperand accessors to ExtractElementInst.
Fix some const correctness problems in SelectInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f8dbee7cea072eb63ae343759975109553697bcb 08-Sep-2009 Dan Gohman <gohman@apple.com> Reappy r80998, now that the GlobalOpt bug that it exposed on MiniSAT is fixed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
59bf4fcc0680e75b408579064d1205a132361196 06-Sep-2009 Duncan Sands <baldrick@free.fr> Public and private corrections, warned about by icc (#304).
Patch by Erick Tryzelaar.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
92a97a9166e359e195d949e63d7e24a4a33284cf 06-Sep-2009 Daniel Dunbar <daniel@zuster.org> Revert "Include optional subclass flags, such as inbounds, nsw, etc., ...", this
breaks MiniSAT on x86_64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
859fff476dfe8d83abdf4621b1d20062c0daa85c 04-Sep-2009 Dan Gohman <gohman@apple.com> Include optional subclass flags, such as inbounds, nsw, etc., in the
Constant uniquing tables. This allows distinct ConstantExpr objects
with the same operation and different flags.

Even though a ConstantExpr "a + b" is either always overflowing or
never overflowing (due to being a ConstantExpr), it's still necessary
to be able to represent it both with and without overflow flags at
the same time within the IR, because the safety of the flag may
depend on the context of the use. If the constant really does overflow,
it wouldn't ever be safe to use with the flag set, however the use
may be in code that is never actually executed.

This also makes it possible to merge all the flags tests into a single test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
bccfc24c4e8092e1ee18746dd4cee01247728faa 03-Sep-2009 Dan Gohman <gohman@apple.com> Change PHINode::hasConstantValue to have a DominatorTree argument
instead of a bool argument, and to do the dominator check itself.
This makes it eaiser to use when DominatorTree information is
available.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
03a5f139fb7d3e9c49fe95aea4c717fab2285d82 03-Sep-2009 Gabor Greif <ggreif@gmail.com> back out my recent commit (r80858), it seems to break self-hosting buildbot's stage 2 configure

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80871 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
190390b8d31af0a549827478911b322af4bc111a 03-Sep-2009 Gabor Greif <ggreif@gmail.com> re-commit r66920 (which has been backed out in r66953) I may have more luck this time. I'll back out if needed...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
65c3c8f323198b99b88b109654194540cf9b3fa5 02-Sep-2009 Sandeep Patel <deeppatel1987@gmail.com> Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
8a67ac525ed874473f0cbe4fc4a02a2606bff7dd 30-Aug-2009 Chris Lattner <sabre@nondot.org> add getPointerAddressSpace() to GEP instruction, use the method
in a few scalar xforms to simplify things.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
a07ae6be66a0c6afe662ea4ad8e67d38fc087c5a 30-Aug-2009 Chris Lattner <sabre@nondot.org> add a "getPointerAddressSpace" helper method to LoadInst and StoreInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
1c8a23c440b1665ba422778cdc74a0c59ecaf39e 26-Aug-2009 Dan Gohman <gohman@apple.com> Eliminate the unused Context argument on one of the ICmpInst and FCmpInst
constructors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80049 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
30f809196362b497eef743ef60acd0724e97654b 26-Aug-2009 Dan Gohman <gohman@apple.com> Use covariant return types for Instruction::clone, and eliminate
the forms of ExtractElementInst and InsertElementInst that are
equivalent to clone.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
1d0be15f89cb5056e20e2d24faa8d6afb1573bca 13-Aug-2009 Owen Anderson <resistor@mac.com> Push LLVMContexts through the IntegerType APIs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
3603d7a3528e6f3402ea4f7057a0b7cc5cc6488b 11-Aug-2009 Daniel Dunbar <daniel@zuster.org> Revert 78680 until I figure out why it completely broke things.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
e2574d3215c412a15763d26aee9aa5d856764c2c 11-Aug-2009 Dan Gohman <gohman@apple.com> Add convenience functions for creating inbounds GEPs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
12ddd409535b52a7fa5157ded9a4cedd161fedb6 11-Aug-2009 Benjamin Kramer <benny.kra@googlemail.com> Make LLVMContext and LLVMContextImpl classes instead of structs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c588d558100b488ff20f560b5c35d3bec4790aff 11-Aug-2009 Daniel Dunbar <daniel@zuster.org> Remove some unnecessary LoadInst constructors, missed during Twinification.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
48b2f3e4850cd27d54224cd42da8a160d6b95984 05-Aug-2009 Owen Anderson <resistor@mac.com> Factor some of the constants+context related code out into a separate header, to make LLVMContextImpl.h
not hideous. Also, fix some MSVC compile errors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
debcb01b0f0a15f568ca69e8f288fade4bfc7297 30-Jul-2009 Owen Anderson <resistor@mac.com> Move types back to the 2.5 API.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
6e0d1cb30957a636c53158d3089e6fb88348a57a 25-Jul-2009 Daniel Dunbar <daniel@zuster.org> Initial update to VMCore to use Twines for string arguments.
- The only meat here is in Value.{h,cpp} the rest is essential 'const
std::string &' -> 'const Twine &'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
a3500da5592aee83675d6714d4f1e9d5ad96d1f2 25-Jul-2009 Eric Christopher <echristo@apple.com> Move ExtractElementInst to ::Create instead of new. Update all uses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
e922c0201916e0b980ab3cfe91e1413e68d55647 22-Jul-2009 Owen Anderson <resistor@mac.com> Get rid of the Pass+Context magic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
5c2cb324d8d6380e8753b7022a6bc0b49809701b 17-Jul-2009 Dan Gohman <gohman@apple.com> Add a GEPOperator class, and move the hasNoPointerOverflow
accessors into it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b4cfd15d9901883cfb46ac3826e0a27573089372 17-Jul-2009 Dan Gohman <gohman@apple.com> Define a no-pointer-overflow flag for GetElementPtr instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
a62b5eded61dfaf5cae63fb6bfd5b514865fb134 17-Jul-2009 Dan Gohman <gohman@apple.com> Fix an apparent typo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
50dead06ffc107edb7e84857baaeeb09039c631c 16-Jul-2009 Owen Anderson <resistor@mac.com> Revert yesterday's change by removing the LLVMContext parameter to AllocaInst and MallocInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
9adc0abad3c3ed40a268ccbcee0c74cb9e1359fe 15-Jul-2009 Owen Anderson <resistor@mac.com> Move EVER MORE stuff over to LLVMContext.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
333c40096561218bc3597cf153c0a3895274414c 10-Jul-2009 Owen Anderson <resistor@mac.com> This started as a small change, I swear. Unfortunately, lots of things call the [I|F]CmpInst constructors. Who knew!?


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
18476eeb4a45435dcbf985d6f360da8ef4bc061c 07-Jul-2009 Dan Gohman <gohman@apple.com> Fix a typo and a grammaro in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d4083e5a91cb0d951d11e7682b1d6b341f5d0c60 18-May-2009 Eric Christopher <echristo@apple.com> Remove getType() overrides for ExtractValueInst and InsertValueInst.

Patch by John McCall.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b45088cd96b9cc925b28b16bca285a151e04557a 23-Mar-2009 Dan Gohman <gohman@apple.com> Make getOperandNumForIncomingValue and getOperandNumForIncomingBlock
static member functions, and add getIncomingValueNumForOperand
and getIncomingBlockNumForOperand, which are the respective
inverses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
9a507cd915e6460bc7dadee2185c53df326274c1 13-Mar-2009 Bill Wendling <isanbard@gmail.com> Revert r66920. It was causing failures in the self-hosting buildbot (in release
mode).

Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/dg.exp ...
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/crash-narrowfunctiontest.ll
Failed with signal(SIGBUS) at line 1
while running: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/crash-narrowfunctiontest.ll -bugpoint-crashcalls -silence-passes > /dev/null
0 bugpoint 0x0035dd25 llvm::sys::SetInterruptFunction(void (*)()) + 85
1 bugpoint 0x0035e382 llvm::sys::RemoveFileOnSignal(llvm::sys::Path const&, std::string*) + 706
2 libSystem.B.dylib 0x92f112bb _sigtramp + 43
3 libSystem.B.dylib 0xffffffff _sigtramp + 1829694831
4 bugpoint 0x00021d1c main + 92
5 bugpoint 0x00002106 start + 54
6 bugpoint 0x00000004 start + 18446744073709543220
Stack dump:
0. Program arguments: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/crash-narrowfunctiontest.ll -bugpoint-crashcalls -silence-passes

FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/misopt-basictest.ll
Failed with signal(SIGBUS) at line 1
while running: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/misopt-basictest.ll -dce -bugpoint-deletecalls -simplifycfg -silence-passes
0 bugpoint 0x0035dd25 llvm::sys::SetInterruptFunction(void (*)()) + 85
1 bugpoint 0x0035e382 llvm::sys::RemoveFileOnSignal(llvm::sys::Path const&, std::string*) + 706
2 libSystem.B.dylib 0x92f112bb _sigtramp + 43
3 libSystem.B.dylib 0xffffffff _sigtramp + 1829694831
4 bugpoint 0x00021d1c main + 92
5 bugpoint 0x00002106 start + 54
6 bugpoint 0x00000006 start + 18446744073709543222
Stack dump:
0. Program arguments: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/misopt-basictest.ll -dce -bugpoint-deletecalls -simplifycfg -silence-passes

FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/remove_arguments_test.ll
Failed with signal(SIGBUS) at line 1
while running: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/remove_arguments_test.ll -bugpoint-crashcalls -silence-passes
0 bugpoint 0x0035dd25 llvm::sys::SetInterruptFunction(void (*)()) + 85
1 bugpoint 0x0035e382 llvm::sys::RemoveFileOnSignal(llvm::sys::Path const&, std::string*) + 706
2 libSystem.B.dylib 0x92f112bb _sigtramp + 43
3 libSystem.B.dylib 0xffffffff _sigtramp + 1829694831
4 bugpoint 0x00021d1c main + 92
5 bugpoint 0x00002106 start + 54
Stack dump:
0. Program arguments: bugpoint /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore/test/BugPoint/remove_arguments_test.ll -bugpoint-crashcalls -silence-passes

--- Reverse-merging (from foreign repository) r66920 into '.':
U include/llvm/Support/CallSite.h
U include/llvm/Instructions.h
U lib/Analysis/IPA/GlobalsModRef.cpp
U lib/Analysis/IPA/Andersens.cpp
U lib/Bitcode/Writer/BitcodeWriter.cpp
U lib/VMCore/Instructions.cpp
U lib/VMCore/Verifier.cpp
U lib/VMCore/AsmWriter.cpp
U lib/Transforms/Utils/LowerInvoke.cpp
U lib/Transforms/Scalar/SimplifyCFGPass.cpp
U lib/Transforms/IPO/PruneEH.cpp
U lib/Transforms/IPO/DeadArgumentElimination.cpp



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b14cda3c0dea98bdd44c2f209afaf4fb36d42a8a 13-Mar-2009 Gabor Greif <ggreif@gmail.com> Second installment of "BasicBlock operands to the back"
changes.

For InvokeInst now all arguments begin at op_begin().
The Callee, Cont and Fail are now faster to get by
access relative to op_end().

This patch introduces some temporary uglyness in CallSite.
Next I'll bring CallInst up to a similar scheme and then
the uglyness will magically vanish.

This patch also exposes all the reliance of the libraries
on InvokeInst's operand ordering. I am thinking of taking
care of that too.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
7e07c00120d9609a4adbfd3e327f743d629aaf37 13-Mar-2009 Gabor Greif <ggreif@gmail.com> cosmetic change, in preparation of future change

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
ae5a20a9177650525b40ed88c8326a398e6caa8a 12-Mar-2009 Gabor Greif <ggreif@gmail.com> Rearrange operands of the BranchInst, to be able to
access each with a fixed negative index from op_end().

This has two important implications:
- getUser() will work faster, because there are less iterations
for the waymarking algorithm to perform. This is important
when running various analyses that want to determine callers
of basic blocks.
- getSuccessor() now runs faster, because the indirection via OperandList
is not necessary: Uses corresponding to the successors are at fixed
offset to "this".

The price we pay is the slightly more complicated logic in the operator
User::delete, as it has to pick up the information whether it has to free
the memory of an original unconditional BranchInst or a BranchInst that
was originally conditional, but has been shortened to unconditional.
I was not able to come up with a nicer solution to this problem. (And
rest assured, I tried *a lot*).

Similar reorderings will follow for InvokeInst and CallInst. After that
some optimizations to pred_iterator and CallSite will fall out naturally.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
7987e1a2c1fb1ee93b30ce95e82e2ce93cd687b4 15-Feb-2009 Mikhail Glushenkov <foldr@codedgers.com> 80-column violation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
484f01b386d3489717cb0f30bcbc4b5a7ac34de5 09-Feb-2009 Gabor Greif <ggreif@gmail.com> incorporate review feedback

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
ed2c45387b1f7dc33bf7bcbe7f8adb8beda2d0d4 09-Feb-2009 Mikhail Glushenkov <foldr@codedgers.com> 80-column violations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
ccd27fb84b0ac13ad1d30b17cbeb87a0ea934154 09-Feb-2009 Gabor Greif <ggreif@gmail.com> make sure that BranchInst::getSuccessor() does not assert in cast<>
even if the underlying operand is NULL. This may happen in debugging context
within opt with partial loop unrolling (see test/Transforms/LoopUnroll/partial.ll).
After this fix I can resubmit the (backed out) r63459:
* lib/VMCore/AsmWriter.cpp: use precise accessors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
3bc6ced4c0c5685620990cf07cc6a7615cc253bc 09-Jan-2009 Chris Lattner <sabre@nondot.org> add a helper method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d68a07650cdb2e18f18f362ba533459aa10e01b6 05-Jan-2009 Dan Gohman <gohman@apple.com> Tidy up #includes, deleting a bunch of unnecessary #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b76ec320dc2d612990139122c01a1945f9d0e654 29-Dec-2008 Chris Lattner <sabre@nondot.org> move select validation logic into a shared place where the select ctor,
verifier, asm parser, etc can share it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c5dd22a3338e089a75ad4a1c2b5cc120a82f9f77 26-Nov-2008 Chris Lattner <sabre@nondot.org> add a long-overdue AllocaInst::isStaticAlloca method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
2d5a0b9e5473618c53cca6cec1b99d18b4c9f76b 29-Oct-2008 David Greene <greened@obbligato.org> Don't force things to be Value * when they're not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
19c874638d9478a5d5028854817a5ee72293bb2b 27-Sep-2008 Devang Patel <dpatel@apple.com> Now Attributes are divided in three groups
- return attributes - inreg, zext and sext
- parameter attributes
- function attributes - nounwind, readonly, readnone, noreturn

Return attributes use 0 as the index.
Function attributes use ~0U as the index.

This patch requires corresponding changes in llvm-gcc and clang.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f2752503336b4070038a5d1727c5e6fc60cd24d2 26-Sep-2008 Dan Gohman <gohman@apple.com> Make some minor reorganizations and comment changes to eliminate trivial
differences between the CallInst and InvokeInst classes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
0598866c052147c31b808391f58434ce3dbfb838 25-Sep-2008 Devang Patel <dpatel@apple.com> Large mechanical patch.

s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g

This sets the stage
- to implement function notes as function attributes and
- to distinguish between function attributes and return value attributes.

This requires corresponding changes in llvm-gcc and clang.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
eaf42abab6d465c38891345d999255871cf03943 24-Sep-2008 Devang Patel <dpatel@apple.com> s/ParameterAttributes/Attributes/g



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
793df075c999125cd1f26c69b43803bc61d5c12b 16-Sep-2008 Dan Gohman <gohman@apple.com> FCmpInst predicates UNO, ORD, FALSE, and TRUE are commutative.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f72fb679eff7de84e3e18b75d63a18cb3510bcdd 09-Sep-2008 Dan Gohman <gohman@apple.com> Extend the vcmp/fcmp LLVM IR instructions to take vectors as arguments
and, if so, to return a vector of boolean as a result;

Extend the select LLVM IR instruction to allow you to specify a result
type which is a vector of boolean, in which case the result will be an
element-wise selection instead of choosing one vector or the other; and

Update LangRef.html to describe these changes.

This patch was contributed by Preston Gurd!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
e2afdedec5f876b88384e21a3e18f48444989346 29-Jul-2008 Matthijs Kooijman <matthijs@stdin.nl> Add a GetElementPtrInst::getIndexedType that accepts uint64_t's instead of just Value*'s.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
1bf9a18834b338484c0a494110cff9cc407be381 24-Jul-2008 Evan Cheng <evan.cheng@apple.com> Rename instance variables, parameter argument names to eliminate a bunch of compilation warnings with -Wshadow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
85f4054b2e42cc43bae898122a0294b80fe9cbb8 22-Jul-2008 Bill Wendling <isanbard@gmail.com> Removing tabs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
2e033f31dc229db8d5c84f19530b7d2ddc175f44 08-Jul-2008 Duncan Sands <baldrick@free.fr> Add some convenience methods for manipulating
call attributes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
2f27e174a9a197701ec88478e2fce5d768d21176 23-Jun-2008 Dan Gohman <gohman@apple.com> Remove two convenience constructors because they're now private, and the
private implementation doesn't really need the convenience.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
19a81633b01b4b30b356ba6d7aed6bc451470654 23-Jun-2008 Dan Gohman <gohman@apple.com> Remove an unnecessary cast.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
5678d6e8d3602acc588029911c1c95f15bddd378 19-Jun-2008 Owen Anderson <resistor@mac.com> Add an idx_iterator to the insertvalue and extractvalue instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
76aca6f38f28a8796d1d1ab60080668d3c7ba4b8 06-Jun-2008 Gabor Greif <ggreif@gmail.com> get rid of ExtractValueInst::init's Value argument, it is already passed to the UnaryInstruction ctor

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d4f268bdd47db4db384483db63c3b09f67e9da6a 06-Jun-2008 Gabor Greif <ggreif@gmail.com> make ExtractValueInst derived from UnaryInstruction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
67944fc42755a32a864c105d604e8829e5ccc4b2 05-Jun-2008 Bill Wendling <isanbard@gmail.com> Cast because I think I know what I'm doing. There are warnings about converting
from 64-bit to 32-bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
cfd5b7d18ba3c803c83fdadcf8472f755d5cda05 05-Jun-2008 Matthijs Kooijman <matthijs@stdin.nl> Fix 80 column violations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
338169ddc9bb4061f248d0afbf0ec87b6bf2227d 04-Jun-2008 Matthijs Kooijman <matthijs@stdin.nl> Add a Name parameter to two of the init methods of GetElementPointer to make the name setting more consistent.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
444099f615c8eebea8d1f22cbad9dfb5664a16e9 04-Jun-2008 Matthijs Kooijman <matthijs@stdin.nl> Implement the two constructors in InsertValueInst and ExtractValueInst.

Add a Name argment to two init methods in these classes as well to make things
a bit more consistent.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
8e6404180c8b713696815170acaae3c0a428dd40 31-May-2008 Dan Gohman <gohman@apple.com> Fix a copy+paste error in a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
35651cdf0bbd474349e680a341dbf235bcdb4608 31-May-2008 Dan Gohman <gohman@apple.com> Fix some bugs with the handling of indices in insertvalue/extractvalue.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
7e2dd6628e398f369a110856ec69455f65d17638 31-May-2008 Dan Gohman <gohman@apple.com> Factor several methods, including getInversePredicate and
getSwappedPredicate, from ICmpInst and FCmpInst into common
methods in CmpInst. This allows CmpInsts to be manipulated
generically.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
81a0c0b44e582baca8b68754a7fcabfc3aef2e7a 31-May-2008 Dan Gohman <gohman@apple.com> IR, bitcode reader, bitcode writer, and asmparser changes to
insertvalue and extractvalue to use constant indices instead of
Value* indices. And begin updating LangRef.html.

There's definately more to come here, but I'm checking this
basic support in now to make it available to people who are
interested.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
6c80c381601b17207b6b8f898cfe273a37584d52 26-May-2008 Gabor Greif <ggreif@gmail.com> eliminate calls to deprecated Use::init() interface

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
e4569943d936d73dec6f36f545e9902095bd3fd8 23-May-2008 Dan Gohman <gohman@apple.com> Add more IR support for the new extractvalue and insertvalue
instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
fc1efbbfbcd707c29bdab8a1adf7b649f42e9600 17-May-2008 Nick Lewycky <nicholas@mxc.ca> Move isTrueWhenEqual to ICmpInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
0bf7b414ae0bb6699cadc3a210d18cfec44e9354 16-May-2008 Eric Christopher <echristo@apple.com> Add functions to enable adding a single attribute to a function and
its associated call site.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
e2d896fab3c9655bc7b21e62029195cb3f036d5c 16-May-2008 Dan Gohman <gohman@apple.com> Update comments based on Duncan's feedback.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51170 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
041e2eb51721bcfecee5d9c9fc409ff185526e47 15-May-2008 Dan Gohman <gohman@apple.com> IR support for extractvalue and insertvalue instructions. Also, begin
moving toward making structs and arrays first-class types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
31cd33a74388308ac5af32fdc9eca2caac7320e4 14-May-2008 Nate Begeman <natebegeman@mac.com> Don't generate unused variables in a no-assert build
Add some checks to the new vicmp,vfcmp instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
94fb68ba217975d2d99ae86d15993402158ac655 14-May-2008 Gabor Greif <ggreif@gmail.com> 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d6a221858610a67d475e347ece92087551112ebc 13-May-2008 Gabor Greif <ggreif@gmail.com> Derive GetResultInst from UnaryInstruction, this simplifies code and removes a FIXME.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
c2e735359f0698582d67fda313926a6436833b05 10-May-2008 Bill Wendling <isanbard@gmail.com> Remove warnings when using -Wshorten-64-to-32.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
1b2f72912fde45086bc2c5c00e78210661a419a5 10-May-2008 Bill Wendling <isanbard@gmail.com> Prevent -W64-to-32-shortened warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d2a5a2ae2e45c7dbec84b9df6fe642b41ff5e4e8 10-May-2008 Bill Wendling <isanbard@gmail.com> Prevent warnings from the -Wshorten-64-to-32 flag.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
efe65369a74871c3140a540a6c95ce5d1f080954 10-May-2008 Gabor Greif <ggreif@gmail.com> merge of use-diet branch to trunk

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
34cd4a484e532cc463fd5a4bf59b88d13c5467c1 05-May-2008 Evan Cheng <evan.cheng@apple.com> Fix more -Wshorten-64-to-32 warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d69bb1abefd08bdc2f3248cab3abe55fad75cb4a 05-May-2008 Evan Cheng <evan.cheng@apple.com> Fix 80 column violations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
051a950000e21935165db56695e35bade668193b 06-Apr-2008 Gabor Greif <ggreif@gmail.com> API changes for class Use size reduction, wave 1.
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
40ca2304a4c192f3075b8be9378dfec7d222b61d 24-Mar-2008 Dan Gohman <gohman@apple.com> Remove an unnecessary #include.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48729 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
52837078c79a42712812c8f2f35a61a93f9921cc 24-Mar-2008 Dan Gohman <gohman@apple.com> Shrink the size of AllocationInst by using its SubclassData
field to store the alignment value instead of haing a
separate field.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d5d94df73f2af639a4cffc7e4f3491001817df08 13-Mar-2008 Chris Lattner <sabre@nondot.org> move a bunch of trivial methods to be inline.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
041221c0972ff575b07f76808c504833d629ae1f 13-Mar-2008 Chris Lattner <sabre@nondot.org> Various improvements suggested by Duncan


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
58d74910c6b82e622ecbb57d6644d48fec5a5c0f 12-Mar-2008 Chris Lattner <sabre@nondot.org> Reimplement the parameter attributes support, phase #1. hilights:

1. There is now a "PAListPtr" class, which is a smart pointer around
the underlying uniqued parameter attribute list object, and manages
its refcount. It is now impossible to mess up the refcount.
2. PAListPtr is now the main interface to the underlying object, and
the underlying object is now completely opaque.
3. Implementation details like SmallVector and FoldingSet are now no
longer part of the interface.
4. You can create a PAListPtr with an arbitrary sequence of
ParamAttrsWithIndex's, no need to make a SmallVector of a specific
size (you can just use an array or scalar or vector if you wish).
5. All the client code that had to check for a null pointer before
dereferencing the pointer is simplified to just access the
PAListPtr directly.
6. The interfaces for adding attrs to a list and removing them is a
bit simpler.

Phase #2 will rename some stuff (e.g. PAListPtr) and do other less
invasive changes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
1eafa06411c9b18d667e828cdcd107937804f88c 11-Mar-2008 Devang Patel <dpatel@apple.com> Fix getOperand() for ReturnInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
22a8a734e941762ae67c3bb7cfa385bf02395ba9 07-Mar-2008 Devang Patel <dpatel@apple.com> RetVal is not used when there are more then one return operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
41e2397b720bc5d917ef614a7a6c257e8a3c8e42 03-Mar-2008 Devang Patel <dpatel@apple.com> s/isReturnStruct()/hasStructRetAttr()/g


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
4fa01441d5946c177e7d20cd454c09662c242c03 02-Mar-2008 Chris Lattner <sabre@nondot.org> make operand accessors const-correct


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
8728f1915f332f09112848c6d30055be5b943ba5 02-Mar-2008 Chris Lattner <sabre@nondot.org> Add a new ShuffleVectorInst::getMaskValue method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
351b0d4e4ef2427beabc07a10a43977060056c74 27-Feb-2008 Anton Korobeynikov <asl@math.spbu.ru> Assert on invalid PHINode::addIncoming() arguments. Patch by Erick Tryzelaar!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
e6be34a53ecbe8c2ff9f0793b13d847e94c0de91 27-Feb-2008 Devang Patel <dpatel@apple.com> Add comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
53284d39cd9cced68f6f4a8d96cbc3c442c190e3 26-Feb-2008 Devang Patel <dpatel@apple.com> Remove unncessary ReturnInst constructors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f4511cd8fbcea9f8eca79b162b3ad3edbd951746 26-Feb-2008 Devang Patel <dpatel@apple.com> Use SmallVector while constructing ReturnInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
fea9830468c316a77f34412004b682e5aacd6a69 26-Feb-2008 Devang Patel <dpatel@apple.com> Avoid const_casts


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f8989657a741e36ce8655384e1de10886df3d0b0 26-Feb-2008 Devang Patel <dpatel@apple.com> Remove unnecessary getOperand/setOperand overriders.
Simplify getReturnValue()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
814ebd77b015c9e95afa6be74cb7e7a636baa7f4 26-Feb-2008 Devang Patel <dpatel@apple.com> Unify to ReturnInst::init() member functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
64d4e6125949ebdc31a488c7ed100373b3c99f15 26-Feb-2008 Devang Patel <dpatel@apple.com> Optimize most common case by using single RetVal in ReturnInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
aaeb60ae4028c841bf009173529d91a45f370756 26-Feb-2008 Devang Patel <dpatel@apple.com> Pass const vectors by reference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
4d4a5e0bd2424b1f9af37b3ca2a3a056b141eb04 23-Feb-2008 Devang Patel <dpatel@apple.com> Remove unnecessary "inline" keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d7313c560855555796a7a0e1ec39b7c2059e0542 23-Feb-2008 Devang Patel <dpatel@apple.com> Use dyn_cast instead of isa + cast.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
57ef4f46c182cdbe014d469892090ff50c739cf9 23-Feb-2008 Devang Patel <dpatel@apple.com> To support multiple return values, now ret instruction supports multiple operands instead of one aggregate operand.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
08e78b18b8ef2c939ee95469662c98e23846d860 22-Feb-2008 Dale Johannesen <dalej@apple.com> Pass alignment on ByVal parameters, from FE, all
the way through. It is now used for codegen.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
474869f2b284b8c6361e5c2af41aa76b752ca356 20-Feb-2008 Devang Patel <dpatel@apple.com> getresult type is the type of indexed aggregate element


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
23755d8755bc0fc6a4e8f4de51d0ed2a760d23d6 20-Feb-2008 Devang Patel <dpatel@apple.com> Specify GetResultInst index as an unsigned.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
2d2ae34d7e2cdbaa8bb2ef4da0e58c91c9e36f85 20-Feb-2008 Devang Patel <dpatel@apple.com> Fix typo. Add const version of getAggregateValue() accessor member function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
40a04216daaaee119665e023019c005306ec48ac 19-Feb-2008 Devang Patel <dpatel@apple.com> Add GetResultInst. First step for multiple return value support.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
0d51e7ec0d2dcbea9e304fd58deb05f37eb75635 19-Feb-2008 Dale Johannesen <dalej@apple.com> Expand ParameterAttributes to 32 bits (in preparation
for adding alignment info, not there yet). Clean up
interfaces to reference ParameterAttributes consistently.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
4189a538e4ae10e6ed359b07cdcc96fd0822c811 28-Jan-2008 Nick Lewycky <nicholas@mxc.ca> Handle some more combinations of extend and icmp. Fixes PR1940.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f4a5498ab44f06b2b74da7fda92521f34bb22367 12-Jan-2008 Evan Cheng <evan.cheng@apple.com> Add hasByValArgument() to test if a call instruction has byval argument(s).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45913 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
50ee9ddc8f0633af6cb0a5693a2c706e98f944da 03-Jan-2008 Chris Lattner <sabre@nondot.org> Split param attr implementation out from Function.cpp into its
own file. Don't #include ParameterAttributes.h into any major
public header files: just move methods out of line as appropriate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
7ed47a13356daed2a34cd2209a31f92552e3bdd8 29-Dec-2007 Chris Lattner <sabre@nondot.org> Don't attribute in file headers anymore. See llvmdev for the
discussion of this change. Boy are my fingers tired. ;-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f0c3354d998507515ab39e26b5292ea0ceb06aef 19-Dec-2007 Duncan Sands <baldrick@free.fr> When inlining through an 'nounwind' call, mark inlined
calls 'nounwind'. It is important for correct C++
exception handling that nounwind markings do not get
lost, so this transformation is actually needed for
correctness.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
2b0e8990ab33ec2dad21286d3ce01dbb4bbe63c1 18-Dec-2007 Duncan Sands <baldrick@free.fr> Rename isNoReturn to doesNotReturn, and isNoUnwind to
doesNotThrow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
fe63fb986dc9510c5d68f2442edab9574e9e50d0 11-Dec-2007 Christopher Lamb <christopher.lamb@gmail.com> Implement address space attribute for LLVM pointer types. Address spaces are
regions of memory that have a target specific relationship, as described in the
Embedded C Technical Report.

This also implements the 2007-12-11-AddressSpaces test,
which demonstrates how address space attributes can be used in LLVM IR.

In addition, this patch changes the bitcode signature for stores (in a backwards
compatible manner), such that the pointer type, rather than the pointee type, is
encoded. This permits type information in the pointer (e.g. address space) to be
preserved for stores.

LangRef updates are forthcoming.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
cbb8badce8838ece47cb806a0399c77d76a7e11b 10-Dec-2007 Duncan Sands <baldrick@free.fr> Make PruneEH update the nounwind/noreturn attributes
on functions as it calculates them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
afa3b6da11bc05281bcf09e45de9e037e0ee5011 28-Nov-2007 Duncan Sands <baldrick@free.fr> Add some convenience methods for querying attributes, and
use them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
dc024674ff96820d6020757b48d47f46d4c07db2 27-Nov-2007 Duncan Sands <baldrick@free.fr> Fix PR1146: parameter attributes are longer part of
the function type, instead they belong to functions
and function calls. This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully
a bitcode guru (who might that be? :) ) will fix it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c2bfadb9df4e5d580d1cbcaa45206f0ec63422d0 23-Nov-2007 Chris Lattner <sabre@nondot.org> add some static icmpinst predicates.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
efd4a5144b03f61ebfd53d0245176f95e1170fb8 17-Oct-2007 Hartmut Kaiser <hartmut.kaiser@gmail.com> Updated VC++ build system.
Silenced some VC warnings.

I'm getting linker errors, though: unresolved externals:

llvm::Split<class llvm::BasicBlock *,struct llvm::GraphTraits<class llvm::BasicBlock *> >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *)

and

llvm::Split<struct llvm::Inverse<class llvm::BasicBlock *>,struct llvm::GraphTraits<struct llvm::Inverse<class llvm::BasicBlock *> > >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *)

Where are these defined?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
11a7dbf12715e66bcf427dc1694aa57455335dfb 24-Sep-2007 Dan Gohman <gohman@apple.com> Remove an unnecessary static_cast.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
5bda9e49ec9432b610289aae4ee251c803513851 15-Sep-2007 Chris Lattner <sabre@nondot.org> Fix PR1666, SPASS with the CBE and 254.gap with the CBE.

GCC optimizes away things like ptr < NULL to false. To "fix" this,
have the CBE emit casts of pointers to intptr_t when doing relational
pointer comparisons.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b8f74793b9d161bc666fe27fc92fe112b6ec169b 04-Sep-2007 David Greene <greened@obbligato.org> Update GEP constructors to use an iterator interface to fix
GLIBCXX_DEBUG issues.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
a5c0d1ec77d75d77960736757cbc00075b1bd233 29-Aug-2007 Chris Lattner <sabre@nondot.org> Silence implicit 64->32-bit conversion warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f1355a55f8d815f5385e9a4432195f03b65f3a42 27-Aug-2007 David Greene <greened@obbligato.org> Update InvokeInst to work like CallInst


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
cd406fe1236a1e0a7f210676768ddd3f69e23166 24-Aug-2007 Chris Lattner <sabre@nondot.org> sink clone() down the class hierarchy from CmpInst into ICmpInst/FCmpInst.
This eliminates a conditional on that path, and ensures ICmpInst/FCmpInst
both have an out-of-line virtual method to home the class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
731a5f1f94f96704ee6e0fb602d6ac7765fe5aef 07-Aug-2007 Chris Lattner <sabre@nondot.org> remove #if 0 code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40879 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
52eec548206d0b135b55ba52dd0e82e978f15ae5 01-Aug-2007 David Greene <greened@obbligato.org> New CallInst interface to address GLIBCXX_DEBUG errors caused by
indexing an empty std::vector.

Updates to all clients.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b1d1f7a03518d1fd38fa8e228c2ee750d59e9af8 21-Jul-2007 Dan Gohman <gohman@apple.com> Simplify the logic for setVolatile.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
6ab2d18f5ea44bf740964036e08253b75ab601f9 18-Jul-2007 Dan Gohman <gohman@apple.com> Add constructor overloads for LoadInst and StoreInst that insert at the
end of a BasicBlock and have an alignment parameter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c9edf0b69b8a2ca3f40b506af1726fd228391b30 07-Jul-2007 Owen Anderson <resistor@mac.com> Add some accessors to improve consistency.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b96039e4b9f167b7ad9196411c14bacbffb3991b 11-May-2007 Dan Gohman <gohman@apple.com> Simplify BranchInst::getSuccessor, avoiding a conditional operator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
6b0974cd1d5ab238e8777ede08acaad06e6b5ffa 27-Apr-2007 Chris Lattner <sabre@nondot.org> add a GEP helper function


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
032507d989163a89311847535a7e7c5d9a67229f 23-Apr-2007 Christopher Lamb <christopher.lamb@gmail.com> PR400 phase 1 implementation feedback.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
43c7f37942a35398fd1e14b22f435f483a0ee863 22-Apr-2007 Christopher Lamb <christopher.lamb@gmail.com> PR400 work phase 1. Add attributed load/store instructions for volatile/align to LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b90909e40536db17665727f5ca1c618e485464c3 22-Apr-2007 Reid Spencer <rspencer@reidspencer.com> For PR1136:
Add reference counting to ParamAttrsList and make use of it in Function,
CallInst and InvokeInst classes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c67bdc288aac130d88630f7fa95ceca6bcf95077 21-Apr-2007 Reid Spencer <rspencer@reidspencer.com> Revert Christopher Lamb's load/store alignment changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
68c773cf193ceb5060b5130a64b43388b34b4ec9 21-Apr-2007 Jeff Cohen <jeffc@jolt-lang.org> The expression "SubclassData = (SubclassData & ~1) | (V) ? 1 : 0;" does not do what
was intended! | has higher precedence than ?. Caught by Visual Studio.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36302 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
2330e4d4c4f8008d17f5a38ac0d7b04e139d4131 21-Apr-2007 Christopher Lamb <christopher.lamb@gmail.com> add support for alignment attributes on load/store instructions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
6f771d435111cd943414ab570e9aec0c7a6c2954 14-Apr-2007 Chris Lattner <sabre@nondot.org> add GetElementPtrInst::hasAllZeroIndices, a long-overdue helper method.
Writing it twice in the same day was too much for me.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
fa3e91242fada931ccb96468ac4c93ca151d64dc 09-Apr-2007 Reid Spencer <rspencer@reidspencer.com> For PR1146:
* Add ParamAttrs to InvokeInst class too.
* Make sure all initializes of ParamAttrs in CallInst and InvokeInst are 0
* Destruct the ParamAttrs in Call/Invoke destructors to avoid memory
leaks. This will change when ParamAttrsList is uniquified but needs to
be correct until then.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
4746ecf16eeb5ff920672fdff1c0dd85594437ed 09-Apr-2007 Reid Spencer <rspencer@reidspencer.com> For PR1146:
* Add ParamAttrList pointers to Function and CallInst.
* Move the implementation of ParamAttrList from Type.cpp to Function.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
3da43849f2a2319ded6ed379ec8e7d620d6ac8c6 28-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Provide an ICmpInst::makeConstantRange to generate a ConstantRange value
from a predicate and an APInt. This is removed from ConstantRange class
so that ConstantRange doesn't have to depend on lib/VMCore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
ac9dcb94dde5f166ee29372385c0e3b695227ab4 15-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1195:
Change use of "packed" term to "vector" in comments, strings, variable
names, etc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
9d6565a5b1fbc4286d6ee638d8f47a3171a9ed7e 15-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1195:
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
133bab0606719cf3e8f5c44873cf205f58a181b5 13-Feb-2007 Chris Lattner <sabre@nondot.org> eliminate instruction ctors that take vectors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d2dd1508aa1218ab1cb34abb8b73ed531847df5a 13-Feb-2007 Chris Lattner <sabre@nondot.org> Add invokeinst and callinst ctors that don't take vectors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d54f432006283ce5ff5626799eb2d7937542b3e8 13-Feb-2007 Chris Lattner <sabre@nondot.org> remove some dead methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
36f78c8935da34074ccd06d5674e45b9cd45da8b 12-Feb-2007 Chris Lattner <sabre@nondot.org> add #include


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
832254e1c2387c0cbeb0a820b8315fbe85cb003a 02-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Changes to support making the shift instructions be true BinaryOperators.
This feature is needed in order to support shifts of more than 255 bits
on large integer types. This changes the syntax for llvm assembly to
make shl, ashr and lshr instructions look like a binary operator:
shl i32 %X, 1
instead of
shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
6ffbe17b3c7934dd97bbbd97c77526727b7ac5d7 31-Jan-2007 Chris Lattner <sabre@nondot.org> implement the new GEP instruction ctors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
fb11053815ee4b3c6593c12aff06fefea96d7d0a 31-Jan-2007 Chris Lattner <sabre@nondot.org> Revise APIs for creating constantexpr GEPs to not require the use of
vectors. This allows us to eliminate many temporary vectors, and their
associated malloc/free pairs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b769d5657ea8af2c7620d29ea1deb97c83782e56 14-Jan-2007 Chris Lattner <sabre@nondot.org> add accessors


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c25ec252fd64d2c60486a669242ae4b616cf810b 29-Dec-2006 Reid Spencer <rspencer@reidspencer.com> Doxygenify a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
06a248c2385b997932689ed1312a1a6b1d814c3c 05-Oct-2006 Chris Lattner <sabre@nondot.org> Add insertelement/extractelement helper ctors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f56a8db5463127ca89f184bf443ca198181cc444 03-Oct-2006 Chris Lattner <sabre@nondot.org> clean up use of 'explicit'. This is PR934.
Patch contributed by Kevin Sopp!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d791544c9fb2412b5ede7488389ca3fec0ae5d12 18-Sep-2006 Nick Lewycky <nicholas@mxc.ca> Fix findCaseDest to return null when BB is both the default dest and one
of the numeric cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
011f1846013e6c0c55e6e583a9ca1bc5e7e7fc1e 18-Sep-2006 Nick Lewycky <nicholas@mxc.ca> Add a new helper method to SwitchInst. Useful when you've got a BB from
somewhere (like the dominator graph) and would like to know which case it
came from.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
79bc332ddb5200d61fb3739502cb0e8b8bb850bf 18-Sep-2006 Chris Lattner <sabre@nondot.org> add a helper method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
2f463865c2f03b8835e35d3499fcd95eed922bc6 17-Sep-2006 Chris Lattner <sabre@nondot.org> Add ShiftInst::isLogical/ArithmeticShift methods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
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/include/llvm/Instructions.h
c773de6d61114820d396e7e758d2594d3b55f92d 19-May-2006 Reid Spencer <rspencer@reidspencer.com> Fix some doxygen usage in these headers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
b77780e11ec72837da2637cf9a7643cd51770d63 10-May-2006 Chris Lattner <sabre@nondot.org> Add alloca/malloc ctors that don't take array sizes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
6a56ed48b982a241ed9a0d9a047121f21412f622 15-Apr-2006 Chris Lattner <sabre@nondot.org> These instructions always return a packed vector. Improve the class definitions to expose this fact.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
fa495844a6b78db0d8e39ca4fe94f4b2a76aad81 08-Apr-2006 Chris Lattner <sabre@nondot.org> Add methods to check insert/extract element instructions for validity


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
9fc18d24ae525a0047718d28e7a8735e8582ddb2 08-Apr-2006 Chris Lattner <sabre@nondot.org> Add a new shufflevector instruction


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f999344fa74199f5acefbc492af2b60e67d0ba24 17-Jan-2006 Robert Bocchino <bocchino@illinois.edu> Instruction and constant expression definitions for the insertelement
operation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
49b78a569609881811d905960baa7dd1ab801383 10-Jan-2006 Robert Bocchino <bocchino@illinois.edu> Added an instruction and constant expression for the extractelement
operation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
8ae779da700f2b1d27598fe71a81cc717a8c461c 05-Nov-2005 Chris Lattner <sabre@nondot.org> add an accessor


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24201 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
14b0529532904b9e5a1e34526b4a3209f3e5bc62 05-Nov-2005 Nate Begeman <natebegeman@mac.com> Add support alignment of allocation instructions.
Add support for specifying alignment and size of setjmp jmpbufs.

No targets currently do anything with this information, nor is it presrved
in the bytecode representation. That's coming up next.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
9acbd611ec13fabf3c13f20161c0de576ea1ad60 05-Aug-2005 Chris Lattner <sabre@nondot.org> Mark hasConstantValue as a const method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c523f4c09647bfa17c3d209cf8333522bc3c069d 05-Aug-2005 Nate Begeman <natebegeman@mac.com> Add an extra parameter that Chris requested


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
a83ba0f5c934e2cdbb5724cab365ecc0b5aae6c6 05-Aug-2005 Nate Begeman <natebegeman@mac.com> Fix a fixme in CondPropagate.cpp by moving a PhiNode optimization into
BasicBlock's removePredecessor routine. This requires shuffling around
the definition and implementation of hasContantValue from Utils.h,cpp into
Instructions.h,cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22664 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c64b64a2044b6c01a42cb35c94b440f799b1340d 19-Jun-2005 Andrew Lenharth <andrewl@lenharth.org> fix DCE + va_arg problem


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f5428213853bae45247fe6da711ff20954d73dbd 18-Jun-2005 Andrew Lenharth <andrewl@lenharth.org> header file changes for varargs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
edd5d9ece15f73ec1a31423a4ae39774aa6c521c 15-May-2005 Reid Spencer <rspencer@reidspencer.com> Some cleanups for compilation with GCC 4.0.0 to remove warnings:
* Use C++ style casts, not C style casts
* Abstract base classes should have virtual destructor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
39cef6025938dbe428e01eb7c273b07cbdf3e8ab 07-May-2005 Jeff Cohen <jeffc@jolt-lang.org> Silence VC++ warnings about unsafe mixing of ints and bools with the | operator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
3340ffe85431f705e91aa4d4b64207f80d0d8c2f 06-May-2005 Chris Lattner <sabre@nondot.org> Add support for explicit calling conventions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
cfae2e80c813fa0e03ebd86a525cc3f034b2b8d7 06-May-2005 Chris Lattner <sabre@nondot.org> add a default arg


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
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/include/llvm/Instructions.h
38bacf29e8716d1ca2f10c6e92fe7a12f358502c 03-May-2005 Chris Lattner <sabre@nondot.org> add direct support for making GEP instrs with one index


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
9769ab22265b313171d201b5928688524a01bd87 21-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
9110286da14fc9dab998605c590e2ce5ac43308c 16-Mar-2005 Misha Brukman <brukman+llvm@gmail.com> Convert tabs to spaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
d1a326006df65470217b9f2f23a4cee2a9696646 24-Feb-2005 Chris Lattner <sabre@nondot.org> switch instructions only allow constantints for their values, be more specific.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
88fe29a1da91017d8390039e3e8baaf2775afa88 05-Feb-2005 Chris Lattner <sabre@nondot.org> Eliminate the explicit volatile fields in LoadInst and StoreInst. This shrinks
LoadInst from 60 -> 56 bytes and StoreInst from 76 -> 72 bytes.

Note however, that this doesn't actually save any memory on common systems
where 'malloc' returns 8-byte aligned memory, as the saved space is replaced
by useless alignment padding. :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
454928eda40aa813772ab43f10703851fa6a97c2 29-Jan-2005 Chris Lattner <sabre@nondot.org> Many changes to cope with the User.h changes. Instructions now generally
directly embed their operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
bfaf88a4d3dcd8ff82a8f0b7379466c4b0270043 10-Dec-2004 Chris Lattner <sabre@nondot.org> Add missing accessor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
a05ec71f45dfc9b8ce34718cd24c1209e2924b60 02-Dec-2004 Chris Lattner <sabre@nondot.org> Remove dead field


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
721aef6897790abc370cd2eddbefa8d0c0a1f6b3 18-Nov-2004 Chris Lattner <sabre@nondot.org> Update comments, now that CPR's are gone, inline the methods


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
859804f529d73120a4414c43cae5fc546453a37f 17-Nov-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Make ReturnInst accept a value of type void as the return value. The
ReturnInst constructed is the same as if NULL was passed instead of
the void value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
c063502e326fe0206942192773b263a3d88d93f5 15-Nov-2004 Chris Lattner <sabre@nondot.org> Warning fixes for VC++, contributed by Morten Ofstad!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
1fca5ff62bb2ecb5bfc8974f4dbfc56e9d3ca721 27-Oct-2004 Chris Lattner <sabre@nondot.org> Convert 'struct' to 'class' in various places to adhere to the coding standards
and work better with VC++. Patch contributed by Morten Ofstad!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
076b3f169379df5e8362dcb37403b14444d5dafb 16-Oct-2004 Chris Lattner <sabre@nondot.org> Add new UnreachableInst class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
f319e832e742959a01ab5cd0e34de0722b318b6b 16-Oct-2004 Chris Lattner <sabre@nondot.org> Move the implementation of the clone method for these classes to
Instructions.cpp, so that a vtable is not emitted into every translation unit
that uses the classes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
eb62bc77b68e8d2350453d15aca300f481a612d5 29-Jul-2004 Alkis Evlogimenos <alkis@evlogimenos.com> Merge i*.h headers into Instructions.h as part of bug403.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
6fbcc26f1460eaee4e0eb8b426fc1ff0c7af11be 20-Oct-2003 John Criswell <criswell@uiuc.edu> Added LLVM copyright header (for lack of a better term).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h
a892a3a08e109c0aa466b92f7e729e803d508099 27-Jan-2003 Chris Lattner <sabre@nondot.org> New helper header


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Instructions.h