Dan Gohman
6564581be0
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.
llvm-svn: 53941
2008-07-23 00:34:11 +00:00
Dan Gohman
821bf58428
IR support for extractvalue and insertvalue instructions. Also, begin
...
moving toward making structs and arrays first-class types.
llvm-svn: 51157
2008-05-15 19:50:34 +00:00
Nate Begeman
b5b1e1353b
Add two new instructions to the llvm IR, vicmp and vfcmp. see updated LangRef
...
for details. CodeGen support coming in a follow up patch
llvm-svn: 50985
2008-05-12 19:01:56 +00:00
Devang Patel
a74d2cbb6f
Add GetResultInst. First step for multiple return value support.
...
llvm-svn: 47348
2008-02-19 22:15:16 +00:00
Chris Lattner
e0b1ee937a
Don't attribute in file headers anymore. See llvmdev for the
...
discussion of this change. Boy are my fingers tired. ;-)
llvm-svn: 45411
2007-12-29 19:59:42 +00:00
Reid Spencer
591bfa1e0b
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.
llvm-svn: 33776
2007-02-02 02:16:23 +00:00
Reid Spencer
4428c3483b
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.
llvm-svn: 32751
2006-12-23 06:05:41 +00:00
Reid Spencer
52d8c5bd3b
Get the delegation right for InstVisitor.
...
llvm-svn: 32025
2006-11-29 21:37:00 +00:00
Reid Spencer
992d9788b3
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.
llvm-svn: 31931
2006-11-27 01:05:10 +00:00
Reid Spencer
6e34ef887b
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.
llvm-svn: 31867
2006-11-20 01:22:35 +00:00
Nick Lewycky
3c69e2291b
Fix usage example.
...
llvm-svn: 30837
2006-10-09 18:33:08 +00:00
Vladimir Prus
3967260b59
Improve InstVisitor docs.
...
llvm-svn: 28586
2006-05-31 15:30:18 +00:00
Chris Lattner
e2d0c1084a
Add a new shufflevector instruction
...
llvm-svn: 27507
2006-04-08 01:15:18 +00:00
Robert Bocchino
dc31d8561b
Support for the insertelement operation.
...
llvm-svn: 25405
2006-01-17 20:06:42 +00:00
Robert Bocchino
1088fb019d
Added an instruction and constant expression for the extractelement
...
operation.
llvm-svn: 25176
2006-01-10 19:04:13 +00:00
Andrew Lenharth
108f509fb5
header file changes for varargs
...
llvm-svn: 22253
2005-06-18 18:31:30 +00:00
Misha Brukman
8018cc9e05
Remove trailing whitespace
...
llvm-svn: 21411
2005-04-21 20:48:15 +00:00
Chris Lattner
5c9c611068
Use static_cast and #include Instructions.h
...
llvm-svn: 20528
2005-03-09 05:35:16 +00:00
Reid Spencer
cdc0b6d962
Standardize on 'class' instead of 'struct'. Gets rid of warnings in VC++
...
Patch contributed by Jeff Cohen.
llvm-svn: 17889
2004-11-16 06:58:55 +00:00
Chris Lattner
cd83905b39
Add support for the unreachable instruction
...
llvm-svn: 17039
2004-10-16 18:06:43 +00:00
Alkis Evlogimenos
b8938f3fec
Remove virtual destructor from InstVisitor. This class should never be
...
used through a base pointer/reference so inproper destruction should
never be an issue. Removing this last virtual function also saves 4
bytes off each InstVisitor instance.
llvm-svn: 13664
2004-05-23 20:54:39 +00:00
Alkis Evlogimenos
6345ab33dd
Fix for gcc3.4: invalid use of forward delacred class on line 93
...
llvm-svn: 13370
2004-05-06 02:07:42 +00:00
Misha Brukman
4d6a3d4e1e
Provide visit(Module&) and visitModule(Module&) functionality.
...
llvm-svn: 13353
2004-05-04 18:30:38 +00:00
Chris Lattner
7aa1774b2e
Add the visitSelectInst visitor method
...
llvm-svn: 12312
2004-03-12 05:51:22 +00:00
Chris Lattner
6afb79b6a8
fix gcc 3.4 compatibility problem
...
llvm-svn: 10248
2003-11-28 01:46:06 +00:00
Brian Gaeke
d25f86d683
Put all LLVM code into the llvm namespace, as per bug 109.
...
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
John Criswell
16c6cda9d5
Added LLVM copyright header (for lack of a better term).
...
llvm-svn: 9304
2003-10-20 20:19:47 +00:00
Chris Lattner
97433b8e95
Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.
...
This allows removal of a special case from the instvisitor
llvm-svn: 9268
2003-10-19 21:34:11 +00:00
Chris Lattner
d0e3a15a9e
New revised variable argument handling support
...
llvm-svn: 9219
2003-10-18 05:53:13 +00:00
Chris Lattner
4e4c763dfc
Standardize header file comments
...
llvm-svn: 8782
2003-09-30 18:37:50 +00:00
Chris Lattner
a1ae09f681
add support for the unwind inst
...
llvm-svn: 8406
2003-09-08 18:54:16 +00:00
Chris Lattner
3521199bc1
Remove automagic support for Modules. Noone uses it now anyways, and GCC 3.4 doesn't want us to do this unless Module has been #included
...
llvm-svn: 8216
2003-08-29 14:48:21 +00:00
Misha Brukman
56f7db4178
Spell `necessary' correctly.
...
llvm-svn: 7944
2003-08-18 14:43:39 +00:00
Chris Lattner
6c12776232
Remove a ton of extraneous #includes
...
llvm-svn: 6842
2003-06-22 03:08:05 +00:00
John Criswell
4781723de6
Included assert.h so that the code compiles under newer versions of GCC.
...
llvm-svn: 6682
2003-06-11 14:01:36 +00:00
Misha Brukman
825e174bf7
Hopefully, the final fix for `[Pp]ropogate'.
...
llvm-svn: 6251
2003-05-20 21:01:22 +00:00
Chris Lattner
1c7dcb91d4
Add support for the new VarArgInst instruction, reindent some stuff
...
llvm-svn: 6028
2003-05-08 02:43:06 +00:00
Chris Lattner
9cf88346b6
Eliminate the GenericBinaryInst class
...
llvm-svn: 3649
2002-09-10 15:35:23 +00:00
Chris Lattner
9f18db8156
Eliminated the MemAccessInst class, folding contents into GEP class.
...
llvm-svn: 3488
2002-08-22 23:37:24 +00:00
Chris Lattner
3fbdcb699a
Load & Store Inst now no longer derive from MemAccessInst
...
llvm-svn: 3486
2002-08-22 22:54:10 +00:00
Chris Lattner
417aa6666c
Add missing forward decl
...
llvm-svn: 3413
2002-08-21 15:38:45 +00:00
Chris Lattner
0e17a44326
Remove support for unary instructions
...
llvm-svn: 3324
2002-08-14 18:18:28 +00:00
Chris Lattner
b57916c8de
*** empty log message ***
...
llvm-svn: 3082
2002-07-25 15:39:09 +00:00
Chris Lattner
dfd421a7df
MEGAPATCH checkin.
...
For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2779
2002-06-25 16:13:24 +00:00
Chris Lattner
708b869951
Make sure to call the derived visit versions from the ranged iterator.
...
llvm-svn: 2607
2002-05-10 22:21:05 +00:00
Chris Lattner
ff9f677248
Add explicit abort so optimized build knows that the function does not return
...
llvm-svn: 2605
2002-05-10 18:53:55 +00:00
Chris Lattner
3cdb370e13
* Add a comment to the header giving a breif overview of how to return a
...
value from a visit function
* Define a (file local) DELEGATE macro to make the code easier to read/maintain
* Define per-opcode delegation functions so that users can override specific
instances of BinaryOperator for example.
llvm-svn: 2290
2002-04-18 16:16:16 +00:00
Chris Lattner
fea39ddbf3
* Make dtor virtual
...
* Add a new defaulted argument that allows the instruction visitation
visitors to return a non-void value.
llvm-svn: 2289
2002-04-18 15:46:40 +00:00
Chris Lattner
bd8fdf2d57
* s/Method/Function
...
* Add/allow callbacks for module,function, & basic block visiting
llvm-svn: 2250
2002-04-15 19:32:36 +00:00
Chris Lattner
c8166cec07
s/Method/Function
...
llvm-svn: 2180
2002-04-08 22:03:57 +00:00