Torok Edwin
254bb831d8
Opaque types didn't work if llvm_is_multithreaded().
...
AlwaysOpaqueTy is always NULL at this point, and it causes an assertion failure.
Fix it by using the just constructed tmp instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80780 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02 12:23:05 +00:00
Torok Edwin
148843b0ce
Fix DbgStopPointInst->getFileName/getDirectory, broken by the MDNodification in
...
r80406, and readd a -print-dbginfo test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80778 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02 11:13:56 +00:00
Sandeep Patel
65c3c8f323
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
2009-09-02 08:44:58 +00:00
Devang Patel
3a29d2d327
For now disable MDNode uniquing. This fixes llvm-gcc bootstrap failure on certain Mac OS X 10.5. I am working on a proper fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80738 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 23:56:42 +00:00
Torok Edwin
2cd5155c0e
Free the constants that have no uses in ~LLVMContext.
...
This fixes leaks from LLVMContext in multithreaded apps.
Since constants are only deleted if they have no uses, it is safe to not delete
a Module on shutdown, as many single-threaded tools do.
Multithreaded apps should however delete the Module before destroying the
Context to ensure that there are no leaks (assuming they use a different context
for each thread).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80590 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-31 16:14:59 +00:00
Dan Gohman
f8a87e8343
Cleanup whitespace and indentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80451 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-29 23:35:16 +00:00
Dan Gohman
c34ee42595
Remove some unused fields.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80450 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-29 23:34:14 +00:00
Devang Patel
e4b275610a
Reapply 79977.
...
Use MDNodes to encode debug info in llvm IR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 23:24:31 +00:00
Dan Gohman
aac1bfb99a
Teach getUnderlyingObject and skipPointerCasts about GlobalAliases.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80265 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 17:55:13 +00:00
Devang Patel
8cf476be5b
Remove an entry from ValueMap before removing elements.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80247 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-27 15:32:38 +00:00
Devang Patel
8245988835
Revert 79977. It causes llvm-gcc bootstrap failures on some platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80073 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 05:01:18 +00:00
Dale Johannesen
de86d473fc
Add an 'inline hint' attribute to represent source
...
code hints that it would be a good idea to inline
a function ("inline" keyword). No functional change
yet; FEs do not emit this and inliner does not use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80063 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 01:08:21 +00:00
Dan Gohman
638d853ef0
Fix the InsertAtEnd form of ShuffleVectorInst constructor to use
...
the correct type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80050 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 23:27:45 +00:00
Dan Gohman
1c8a23c440
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
2009-08-25 23:17:54 +00:00
Dan Gohman
30f8091963
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
2009-08-25 22:29:08 +00:00
Dan Gohman
75b0edae72
This should use isIndenticalToWhenDefined.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80039 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 22:24:20 +00:00
Dan Gohman
58cfa3b137
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
2009-08-25 22:11:20 +00:00
Dan Gohman
63a03cf585
Allocate the basic types inside the LLVMContextImpl instance,
...
rather than separately with new. Move the members above the
TypeMap members to avoid destruction order issues. This fixes
a leak of these objects, and eliminates an extra level of
indirection in Type::getInt32Ty and friends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79997 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 16:00:35 +00:00
Devang Patel
2a610c7387
Update DebugInfo interface to use metadata, instead of special named llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well.
...
This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79977 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 05:24:07 +00:00
Benjamin Kramer
cfa6ec92e6
Kill off more cerr/cout uses and prune includes a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79852 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 11:37:21 +00:00
Chris Lattner
45cfe545ec
Change Pass::print to take a raw ostream instead of std::ostream,
...
update all code that this affects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79830 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 06:03:38 +00:00
Chris Lattner
791102fb11
eliminate the std::ostream form of WriteAsOperand and update clients.
...
This also updates dominator related stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79825 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 05:17:37 +00:00
Chris Lattner
79c5d3f971
remove the std::ostream version of module and type printing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79823 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 04:52:46 +00:00
Chris Lattner
569f121f4e
remove some DOUTs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79821 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 04:44:11 +00:00
Chris Lattner
bdff548e4d
eliminate the "Value" printing methods that print to a std::ostream.
...
This required converting a bunch of stuff off DOUT and other cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79819 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 04:37:46 +00:00
Owen Anderson
b1352e9534
Use standard LLVM-style headers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79817 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 04:24:24 +00:00
Chris Lattner
37f077a8da
switch a couple things off std::ostream
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79816 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 04:02:03 +00:00
Chris Lattner
b93a9a66ba
switch from std::ostream to raw ostream, fix file header.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79815 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-23 03:56:06 +00:00
Owen Anderson
72689b4094
Reduce contention on the Attributes lock by using atomic operations for reference counting rather than locking.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79560 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 19:03:20 +00:00
Dan Gohman
5078f84c82
Rename hasNoUnsignedOverflow and hasNoSignedOverflow to hasNoUnsignedWrap
...
and hasNoSignedWrap, for consistency with the nuw and nsw properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79539 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-20 17:11:38 +00:00
Daniel Dunbar
5149932068
Add a fast path for setName("") on an unnamed value.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79492 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 23:37:23 +00:00
Owen Anderson
517d811f6b
AttrListPtr operations need to be atomic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79486 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 22:58:34 +00:00
Daniel Dunbar
29c142077e
Change ValueSymbolTable to use raw_svector_ostream for string concatenation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79449 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 19:22:52 +00:00
Owen Anderson
c34ebf65af
Reapply my less-lock-contention-in-leak-detector patch, now with new files
...
actually added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79429 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 17:07:46 +00:00
Daniel Dunbar
e476004b94
Make a SmallVector size more reasonable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79403 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 05:08:06 +00:00
Owen Anderson
021d664a38
Revert my last patch temporarily.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79388 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 00:52:13 +00:00
Owen Anderson
ba43a385a8
Privatize part of the leak detector mechanism, which turned out to be heavily contended
...
when trying to run opt in parallel. This lets parallel opt crunch 403.gcc in about a third
of the time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79387 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 00:37:02 +00:00
Owen Anderson
4d91943889
Privatize the ValueHandle global map. Because this is used so heavily throughout the code base, locking all accesses to
...
it is not practical performance-wise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79355 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 18:28:58 +00:00
Devang Patel
4b49cd298a
Add prefix only if it is needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79289 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 23:17:17 +00:00
Owen Anderson
7b7b102023
Privatize the last bits of static type state.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79258 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 17:59:35 +00:00
Owen Anderson
36a3eb0aaa
Move the TypeMap lock to a member on LLVMContextImpl.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79256 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 17:34:27 +00:00
Owen Anderson
596c1dc3e2
Add locking around the attributes list.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79255 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 17:10:58 +00:00
Chris Lattner
8f4b1ec02b
the MinPad argument to PadToColumn only really makes sense to be 1,
...
just remove the argument and replace it with 1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79246 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 15:48:08 +00:00
Dan Gohman
48cc73d9c7
Fix printing of instructions with null operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79243 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 15:28:08 +00:00
Dan Gohman
e04853ca78
Always print at least one space before adding a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79242 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-17 15:27:30 +00:00
Erick Tryzelaar
e0a1bf64c9
Expose creating constant ints and floats from strings in llvm-c.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79213 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 23:36:46 +00:00
Erick Tryzelaar
0e81f660db
Add helper functions to ConstantInt and ConstantFP to accept strings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79212 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 23:36:33 +00:00
Dan Gohman
3778f21b17
Add a getOffsetOf, for building a target-independent expression for
...
offsetof, similar to getSizeOf for sizeof.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79208 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 21:26:11 +00:00
Erick Tryzelaar
5c1c208296
Add an llvm-c function that lets you insert an instruction with a name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79163 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 02:20:57 +00:00
Erick Tryzelaar
56b22697d8
Expose most of the Constant creation functions to llvm-c.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79160 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-16 02:20:12 +00:00