Commit Graph

3487 Commits

Author SHA1 Message Date
Jeffrey Yasskin
6fec233a1e Roll back r97918 again. Just configuring against llvm-gcc wasn't enough to run
the FrontendC* tests. :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97921 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-07 19:26:40 +00:00
Jeffrey Yasskin
92ce42f9fc Reapply r97788 to free MDNodes when the LLVMContext is destroyed. It
bootstraps llvm-gcc this time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97918 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-07 18:46:57 +00:00
Nick Lewycky
e20ab4a03c Add verification of union types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97889 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-06 20:26:48 +00:00
Jeffrey Yasskin
b71a2fcf5e Revert r97788 because it broke test/FrontendC/2010-02-16-DbgVarScope.c.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97792 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-05 06:43:49 +00:00
Jeffrey Yasskin
c8cfa30ca5 Free MDNodes when the LLVMContext is destroyed. Leak found by Valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97788 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-05 05:47:09 +00:00
Jeffrey Yasskin
e5790a432a Stop leaking MDStrings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97763 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-04 23:24:19 +00:00
Erick Tryzelaar
d4076cfc83 Rewrite makefiles to explicitly reference DESTDIR to fix bug 3153.
We need this so can not bake DESTDIR into the O'Caml symlinks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97743 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-04 20:56:19 +00:00
Nick Lewycky
5bf7f88ea2 Make the 'icmp pred trunc(ext(X)), CST --> icmp pred X, ext(trunc(CST))'
transformation much more careful. Truncating binary '01' to '1' sounds like it's
safe until you realize that it switched from positive to negative under a signed
interpretation, and that depends on the icmp predicate.

Also a few miscellaneous cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97721 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-04 06:54:10 +00:00
Chris Lattner
c8e14b3d37 fix incorrect folding of icmp with undef, PR6481.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97659 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03 19:46:03 +00:00
Erick Tryzelaar
df7df075b7 Add Module functions in place of module providers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97608 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02 23:58:54 +00:00
Erick Tryzelaar
24b3733425 Rename LLVMUseIteratorRef to LLVMUseRef since we don't refer to iterators in llvm-c.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97585 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02 20:32:28 +00:00
Duncan Sands
6d52102b92 Rather than passing "false" for InsertBefore, AddressSpace for ThreadLocal,
and nothing for AddressSpace, pass 0 for InsertBefore, "false" for ThreadLocal
and AddressSpace for AddressSpace.  Spotted by gcc-4.5.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97563 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02 11:18:43 +00:00
Erick Tryzelaar
f3d5c91550 Fix looking up MD names to not need a module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97550 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02 05:32:52 +00:00
Dan Gohman
16b77211cf Don't print "Modified" for passes which haven't modified anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97446 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-01 17:34:28 +00:00
Erick Tryzelaar
8e130b1d0d Add support for global variables in an address space for llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97377 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 09:46:13 +00:00
Erick Tryzelaar
c59286bff1 Add indirect br support to llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97376 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 09:46:06 +00:00
Erick Tryzelaar
46c80e0c56 Add metadata functions to llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97375 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 09:45:59 +00:00
Erick Tryzelaar
19f047f5f6 Add the new builder arthmetic instructions to llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97372 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 05:51:43 +00:00
Erick Tryzelaar
1940dd10dd Add the new union arthmetic instructions to llvm-c and ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97371 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 05:51:33 +00:00
Erick Tryzelaar
abbcc5ee6f Add generic binary op and cast builder functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97370 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-28 05:51:27 +00:00
Dale Johannesen
350df33d72 Add type printing for Metadata pseudo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97251 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26 19:38:59 +00:00
Dan Gohman
9ee0d8a917 Teach the constant folder about union types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97142 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25 16:45:19 +00:00
Dan Gohman
2440cf1c6f Remove code which assumes it knows how vectors are stored in memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97141 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25 16:05:33 +00:00
Nick Lewycky
fa0c54e3b8 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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97124 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25 06:53:04 +00:00
Dan Gohman
0e488b3d1c 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96816 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-22 22:43:23 +00:00
Dan Gohman
d97439d1e5 Use Instruction::isCommutative instead of duplicating it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96807 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-22 22:05:18 +00:00
Talin
196c60a571 replaceUsesOfWithOnConstant implementation for unions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96616 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18 21:43:45 +00:00
Devang Patel
06fdaccc89 Destroy MDNodes gracefully while deleting llvm context.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96609 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-18 20:53:16 +00:00
Kenneth Uildriks
f1ac0fd347 Function attributes have index ~0, not 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96370 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16 19:28:02 +00:00
Duncan Sands
47c5188789 Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some
methods to try to have the type predicates be more logically positioned.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96349 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-16 14:50:09 +00:00
Duncan Sands
1df9859c40 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
2010-02-16 11:11:14 +00:00
Nick Lewycky
6a7cb63f6f Teach the verifier to check the condition on a branch and ensure that it has
'i1' type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96282 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 22:09:09 +00:00
Nick Lewycky
6e5a2bd032 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().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96275 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 21:52:04 +00:00
Nick Lewycky
c638088d6f 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96273 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 21:27:56 +00:00
Nick Lewycky
936c43bb23 A function with no Module owner isn't materializable. This fixes F->dump() for
functions not embedded within modules.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96272 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-15 21:27:20 +00:00
Duncan Sands
b0bc6c361d 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
2010-02-15 16:12:20 +00:00
Jeffrey Yasskin
cfd3072841 Make PassRegistrar thread-safe since it can be modified by code running in
separate LLVMContexts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96051 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-13 00:03:17 +00:00
Chris Lattner
fdfeb6976f Add support for a union type in LLVM IR. Patch by Talin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96011 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12 20:49:41 +00:00
Charles Davis
1e063d14df 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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95945 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-12 00:31:15 +00:00
Devang Patel
cb419d3c6f revert 95903.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95918 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11 20:58:56 +00:00
Devang Patel
11dbf8ee69 Destroy MDNodes while destructing llvm context.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95903 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11 19:35:10 +00:00
Jeffrey Yasskin
9233b15d01 Fix some of the memcheck errors found in the JIT unittests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95856 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-11 06:41:30 +00:00
Dan Gohman
659d1e8bbb Minor whitespace cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95801 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10 20:42:57 +00:00
Dan Gohman
7a5666e7f3 Add a hook to AssemblyAnnotationWriter to allow custom info comments
to be printed, in place of the familiar "uses=" comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95798 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10 20:41:46 +00:00
Dan Gohman
f3b11aa6a7 Fix several comments which had previously been "the the" where a
different word was intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95795 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10 20:04:19 +00:00
Dan Gohman
f451cb870e Fix "the the" and similar typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95781 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10 16:03:48 +00:00
Dan Gohman
a84ffedafc Canonicalize sizeof and alignof on pointer types to a canonical
pointer type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95769 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10 06:13:07 +00:00
Kenneth Uildriks
f1f505f85c IntegerValType holds a uint32_t, so its constructor should take a uint32_t. This allows it to be properly initialized with bit widths > 65535
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95731 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-10 00:14:03 +00:00
Nick Lewycky
337c6a8edd Make the destructor for TypeMapBase protected. Spotted by Duncan Sands with
cppcheck!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95527 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-07 21:13:46 +00:00
Jakob Stoklund Olesen
570a4a5d9c 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95466 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-06 01:16:28 +00:00