Dan Gohman
74b189fcb2
Don't print "Modified" for passes which haven't modified anything.
...
llvm-svn: 97446
2010-03-01 17:34:28 +00:00
Erick Tryzelaar
06894b3824
Add support for global variables in an address space for llvm-c and ocaml.
...
llvm-svn: 97377
2010-02-28 09:46:13 +00:00
Erick Tryzelaar
0fb26ef01f
Add indirect br support to llvm-c and ocaml.
...
llvm-svn: 97376
2010-02-28 09:46:06 +00:00
Erick Tryzelaar
d8531faf95
Add metadata functions to llvm-c and ocaml.
...
llvm-svn: 97375
2010-02-28 09:45:59 +00:00
Erick Tryzelaar
4c340c7f7f
Add the new builder arthmetic instructions to llvm-c and ocaml.
...
llvm-svn: 97372
2010-02-28 05:51:43 +00:00
Erick Tryzelaar
a8053dfd27
Add the new union arthmetic instructions to llvm-c and ocaml.
...
llvm-svn: 97371
2010-02-28 05:51:33 +00:00
Erick Tryzelaar
318317961c
Add generic binary op and cast builder functions.
...
llvm-svn: 97370
2010-02-28 05:51:27 +00:00
Dale Johannesen
e6b53047bb
Add type printing for Metadata pseudo.
...
llvm-svn: 97251
2010-02-26 19:38:59 +00:00
Dan Gohman
a2684dbff0
Teach the constant folder about union types.
...
llvm-svn: 97142
2010-02-25 16:45:19 +00:00
Dan Gohman
935faff0bd
Remove code which assumes it knows how vectors are stored in memory.
...
llvm-svn: 97141
2010-02-25 16:05:33 +00:00
Nick Lewycky
ba8ec9a9e4
Dump the presence of attached metadata even if we don't know what it is. This
...
format is not parsable, even if the module is legal. To get parsable output,
dump the module instead of the function or smaller, since metadata kind are
attached to the module (not the context).
llvm-svn: 97124
2010-02-25 06:53:04 +00:00
Dan Gohman
6c5ac6de5c
Canonicalize ConstantInts to the right operand of commutative
...
operators.
The test difference is just due to the multiplication operands
being commuted (and thus requiring a more elaborate match). In
optimized code, that expression would be folded.
llvm-svn: 96816
2010-02-22 22:43:23 +00:00
Dan Gohman
6eeabaad2b
Use Instruction::isCommutative instead of duplicating it.
...
llvm-svn: 96807
2010-02-22 22:05:18 +00:00
Talin
1feba3c980
replaceUsesOfWithOnConstant implementation for unions.
...
llvm-svn: 96616
2010-02-18 21:43:45 +00:00
Devang Patel
82ab3f8727
Destroy MDNodes gracefully while deleting llvm context.
...
llvm-svn: 96609
2010-02-18 20:53:16 +00:00
Kenneth Uildriks
10e3022b10
Function attributes have index ~0, not 0
...
llvm-svn: 96370
2010-02-16 19:28:02 +00:00
Duncan Sands
cbd43f89ac
Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some
...
methods to try to have the type predicates be more logically positioned.
llvm-svn: 96349
2010-02-16 14:50:09 +00:00
Duncan Sands
19d0b47b1f
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.
llvm-svn: 96344
2010-02-16 11:11:14 +00:00
Nick Lewycky
1d9a8159df
Teach the verifier to check the condition on a branch and ensure that it has
...
'i1' type.
llvm-svn: 96282
2010-02-15 22:09:09 +00:00
Nick Lewycky
62f864dea3
Fix crash in VerifyType when checking Contexts. Because there may not be a
...
Module (we were called with verifyFunction and an unowned Function) we can't
rely on Mod->getContext().
llvm-svn: 96275
2010-02-15 21:52:04 +00:00
Nick Lewycky
94e168f09e
Don't try to materialize a function that isn't materializable anyways. This
...
fixes a crash using FPM on a Function that isn't owned by a Module.
llvm-svn: 96273
2010-02-15 21:27:56 +00:00
Nick Lewycky
780d2fe319
A function with no Module owner isn't materializable. This fixes F->dump() for
...
functions not embedded within modules.
llvm-svn: 96272
2010-02-15 21:27:20 +00:00
Duncan Sands
9dff9bec31
Uniformize the names of type predicates: rather than having isFloatTy and
...
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
2010-02-15 16:12:20 +00:00
Jeffrey Yasskin
01f88a96c5
Make PassRegistrar thread-safe since it can be modified by code running in
...
separate LLVMContexts.
llvm-svn: 96051
2010-02-13 00:03:17 +00:00
Chris Lattner
392be58cad
Add support for a union type in LLVM IR. Patch by Talin!
...
llvm-svn: 96011
2010-02-12 20:49:41 +00:00
Charles Davis
be5557e86b
Add a new function attribute, 'alignstack'. It will indicate (when the backends
...
implement support for it) that the stack should be forcibly realigned in the
prologue (and the process reversed in the epilogue).
llvm-svn: 95945
2010-02-12 00:31:15 +00:00
Devang Patel
c07f1f4f7b
revert 95903.
...
llvm-svn: 95918
2010-02-11 20:58:56 +00:00
Devang Patel
11ddc679ca
Destroy MDNodes while destructing llvm context.
...
llvm-svn: 95903
2010-02-11 19:35:10 +00:00
Jeffrey Yasskin
c660b23075
Fix some of the memcheck errors found in the JIT unittests.
...
llvm-svn: 95856
2010-02-11 06:41:30 +00:00
Dan Gohman
bd11c41b91
Minor whitespace cleanups.
...
llvm-svn: 95801
2010-02-10 20:42:57 +00:00
Dan Gohman
e34890f921
Add a hook to AssemblyAnnotationWriter to allow custom info comments
...
to be printed, in place of the familiar "uses=" comments.
llvm-svn: 95798
2010-02-10 20:41:46 +00:00
Dan Gohman
97c5902e78
Fix several comments which had previously been "the the" where a
...
different word was intended.
llvm-svn: 95795
2010-02-10 20:04:19 +00:00
Dan Gohman
4a618827de
Fix "the the" and similar typos.
...
llvm-svn: 95781
2010-02-10 16:03:48 +00:00
Dan Gohman
183a423af9
Canonicalize sizeof and alignof on pointer types to a canonical
...
pointer type.
llvm-svn: 95769
2010-02-10 06:13:07 +00:00
Kenneth Uildriks
08f618cd03
IntegerValType holds a uint32_t, so its constructor should take a uint32_t. This allows it to be properly initialized with bit widths > 65535
...
llvm-svn: 95731
2010-02-10 00:14:03 +00:00
Nick Lewycky
b1d5ead9fb
Make the destructor for TypeMapBase protected. Spotted by Duncan Sands with
...
cppcheck!
llvm-svn: 95527
2010-02-07 21:13:46 +00:00
Jakob Stoklund Olesen
74bb06c0f0
Reintroduce the InlineHint function attribute.
...
This time it's for real! I am going to hook this up in the frontends as well.
The inliner has some experimental heuristics for dealing with the inline hint.
When given a -respect-inlinehint option, functions marked with the inline
keyword are given a threshold just above the default for -O3.
We need some experiments to determine if that is the right thing to do.
llvm-svn: 95466
2010-02-06 01:16:28 +00:00
Duncan Sands
fa5f5965de
Adding missing methods for creating Add, Mul, Neg and Sub with NUW.
...
llvm-svn: 95086
2010-02-02 12:53:04 +00:00
Dan Gohman
f644af8bbe
Factor out alignof expression folding into a separate function and
...
generalize it to handle more cases.
llvm-svn: 95045
2010-02-02 01:41:39 +00:00
Chris Lattner
f5edeebd8c
eliminate a bunch of pointless LLVMContext arguments.
...
llvm-svn: 95001
2010-02-01 20:48:08 +00:00
Duncan Sands
dddba06e9e
Fix typo "of" -> "or" and change the way a line was formatted to fit
...
into 80 columns to match my artistic preferences.
llvm-svn: 95000
2010-02-01 20:42:02 +00:00
Chris Lattner
94eb4b285b
fix PR6195, a bug constant folding scalar -> vector compares.
...
llvm-svn: 94997
2010-02-01 20:04:40 +00:00
Chris Lattner
3c46e14137
fix PR6197 - infinite recursion in ipsccp due to block addresses
...
evaluateICmpRelation wasn't handling blockaddress.
llvm-svn: 94993
2010-02-01 19:35:08 +00:00
Dan Gohman
e5e1b7b05a
Generalize target-independent folding rules for sizeof to handle more
...
cases, and implement target-independent folding rules for alignof and
offsetof. Also, reassociate reassociative operators when it leads to
more folding.
Generalize ScalarEvolution's isOffsetOf to recognize offsetof on
arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr
to getOffsetOfExpr, for consistency with analagous ConstantExpr routines.
Make the target-dependent folder promote GEP array indices to
pointer-sized integers, to make implicit casting explicit and exposed
to subsequent folding.
And add a bunch of testcases for this new functionality, and a bunch
of related existing functionality.
llvm-svn: 94987
2010-02-01 18:27:38 +00:00
Dan Gohman
de047f2051
Add a getNUWMul function.
...
llvm-svn: 94982
2010-02-01 16:38:14 +00:00
Dan Gohman
ede94e6850
Add a generalized form of ConstantExpr::getOffsetOf which works for
...
array types as well as struct types, and which accepts arbitrary
Constant indicies.
llvm-svn: 94981
2010-02-01 16:37:38 +00:00
Dan Gohman
5ded1424b0
Print a comment next to "materializable" global values, to distinguish
...
them from values that are not actually defined in the module.
llvm-svn: 94854
2010-01-29 23:12:36 +00:00
Benjamin Kramer
b17c58674e
Convert some users of ftostr to raw_ostream.
...
llvm-svn: 94808
2010-01-29 14:42:22 +00:00
Dan Gohman
a424b9fbd1
Remove the folding rule
...
getelementptr (i8* inttoptr (i64 1 to i8*), i32 -1)
to
inttoptr (i64 0 to i8*)
from the VMCore constant folder. It didn't handle sign-extension properly
in the case where the source integer is smaller than a pointer size. And,
it relied on an assumption about sizeof(i8).
The Analysis constant folder still folds these kinds of things; it has
access to TargetData, so it can do them right.
Add a testcase which tests that the VMCore constant folder doesn't
miscompile this, and that the Analysis folder does fold it.
llvm-svn: 94750
2010-01-28 18:08:26 +00:00
Dan Gohman
a9be73929f
Make getAlignOf return an i64, for consistency with getSizeOf and
...
getOffsetOf, and remove the comment about assuming i8 is byte-aligned,
which is no longer applicable.
llvm-svn: 94738
2010-01-28 02:43:22 +00:00