Owen Anderson
006c77df8c
Privatize the ConstantStruct table.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76912 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 23:25:33 +00:00
Daniel Dunbar
bc8d813f71
Switch ValueSymbolTable to StringRef based API.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76894 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 18:52:12 +00:00
Daniel Dunbar
e6c42dd6d3
Add llvm::Value::getNameRef, for help in API migration.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76893 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 18:50:53 +00:00
Daniel Dunbar
6316fbcb04
Convert StringMap to using StringRef for its APIs.
...
- Yay for '-'s and simplifications!
- I kept StringMap::GetOrCreateValue for compatibility purposes, this can
eventually go away. Likewise the StringMapEntry Create functions still follow
the old style.
- NIFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76888 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 18:17:34 +00:00
Devang Patel
2f9c3b002d
MDString
...
- Rename member function size(). New name is length().
- Store string beginning and length. Earlier it used to store string end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76841 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 02:00:51 +00:00
Devang Patel
104cf9e02b
Derive MDNode from MetadataBase instead of Constant. Emit MDNodes into METADATA_BLOCK in bitcode file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76834 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23 01:07:34 +00:00
Dan Gohman
08d012eba4
Rename the new unsigned and signed keywords to nuw and nsw,
...
which stand for no-unsigned-wrap and no-signed-wrap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76810 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 22:44:56 +00:00
Daniel Dunbar
3d5126fbad
Switch some clients to Value::getName(), and other getName() user
...
simplification.
- NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 21:33:09 +00:00
Devang Patel
66a9d6702f
Do not print "metadata" twice while printing MDString.
...
This fixes unittest failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76764 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 18:10:23 +00:00
Devang Patel
e54abc90fe
Introduce MetadataBase, a base class for MDString and MDNode.
...
Derive MDString directly from MetadataBase.
Introduce new bitcode block to hold metadata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76759 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 17:43:22 +00:00
Duncan Sands
a926697373
Add newline at end of file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76736 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 13:20:41 +00:00
Owen Anderson
e922c02019
Get rid of the Pass+Context magic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 00:24:57 +00:00
Chris Lattner
7cf12c7efd
reimplement Constant::ContainsRelocations as
...
Constant::getRelocationInfo(), which has a much simpler
to use API. It still should not be part of libvmcore, but
is better than it was. Also teach it to be smart about
hidden visibility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76700 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22 00:05:44 +00:00
Dan Gohman
295643b805
Permit the IntPtrTy argument to isEliminableCastPair to be null,
...
to help support use when TargetData is not available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76675 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 23:19:40 +00:00
Owen Anderson
822ccd9974
Privatize the ConstantArray table.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76639 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 20:55:28 +00:00
Owen Anderson
16e298f980
Privatize the first of the value maps.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76634 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 20:13:12 +00:00
Owen Anderson
b3056faa55
Rename getConstantInt{True|False} to get{True|False} at Chris' behest.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76598 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 18:03:38 +00:00
Owen Anderson
f53c371983
Move a bit more state over to the LLVMContext.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76533 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 02:47:59 +00:00
Dan Gohman
1224c38698
Assembly and Bitcode support for unsigned/signed overflow flags and
...
exact sdiv flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76475 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 21:19:07 +00:00
Bill Wendling
4aebcb4f5f
Change the casting of linkage types into a map. This makes this much more robust
...
as it no longer depends upon two different enums being kept in sync with each
other.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76465 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 20:34:46 +00:00
Bill Wendling
5c0ba804c0
Rename Mangler linkage enums to something less gross.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76456 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 19:41:27 +00:00
Dan Gohman
f241174421
Revert the addition of hasNoPointerOverflow to GEPOperator.
...
Getelementptrs that are defined to wrap are virtually useless to
optimization, and getelementptrs that are undefined on any kind
of overflow are too restrictive -- it's difficult to ensure that
all intermediate addresses are within bounds. I'm going to take
a different approach.
Remove a few optimizations that depended on this flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76437 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 17:43:30 +00:00
Bill Wendling
3d10a5a757
Add plumbing for the `linker_private' linkage type. This type is meant for
...
"private" symbols which the assember shouldn't strip, but which the linker may
remove after evaluation. This is mostly useful for Objective-C metadata.
This is plumbing, so we don't have a use of it yet. More to come, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76385 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-20 01:03:30 +00:00
Dan Gohman
5a206ee7ed
Make GetElementPtr ConstantExprs default to having no pointer overflow.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76280 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 01:49:22 +00:00
Dan Gohman
8fdedc0918
Fix this accidentally inverted condition.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76278 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 00:58:38 +00:00
Dan Gohman
016de81177
Convert more code to use Operator instead of explicitly handling both
...
ConstantExpr and Instruction. This involves duplicating some code
between GetElementPtrInst and GEPOperator, but it's not a lot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76265 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 23:55:56 +00:00
Dan Gohman
3a7a68c108
Make BasicAliasAnalysis and Value::getUnderlyingObject use
...
GEPOperator's hasNoPointer0verflow(), and make a few places in instcombine
that create GEPs that may overflow clear the NoOverflow value. Among
other things, this partially addresses PR2831.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76252 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 22:25:10 +00:00
Dan Gohman
5c2cb324d8
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
2009-07-17 21:33:58 +00:00
Dan Gohman
ff141c2062
Fix a typo that Duncan spotted.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76233 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 20:51:47 +00:00
Dan Gohman
1bd9f58d6d
GetElementPtr instructions default to having no overflow.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76222 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 19:23:21 +00:00
Daniel Dunbar
d75ec23ab7
Fix compile warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76210 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 18:33:52 +00:00
Anton Korobeynikov
c5ec8a78ea
Add support for naked functions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76198 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 18:07:26 +00:00
Dan Gohman
9491c16e14
Add a SubclassOptionalData field to Value. See the doxygen comment for
...
details.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76189 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 17:16:59 +00:00
Eli Friedman
0b79a7727d
Replace isTrapping with a new, similar method called
...
isSafeToSpeculativelyExecute. The new method is a bit closer to what
the callers actually care about in that it rejects more things callers
don't want. It also adds more precise handling for integer
division, and unifies code for analyzing the legality of a speculative
load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76150 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 04:28:42 +00:00
Jeffrey Yasskin
28ebfcf7de
Fix "no newline at end of file" warning from gcc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76127 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 23:58:14 +00:00
Owen Anderson
ce032b483c
Privatize the MDNode uniquing table.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76126 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 23:44:30 +00:00
Owen Anderson
aad3fb7362
Privatize the MDString uniquing table.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76113 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 22:11:26 +00:00
Daniel Dunbar
efd280b4ca
Fix compiler warning (for -Asserts).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76110 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 22:06:22 +00:00
Owen Anderson
914e50c841
Privatize the ConstantFP table. I'm on a roll!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76097 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 19:05:41 +00:00
Ted Kremenek
da24fe265a
Update CMake file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76093 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 18:29:22 +00:00
Owen Anderson
001dbfebcb
Move the ConstantInt uniquing table into LLVMContextImpl. This exposed a number of issues in
...
our current context-passing stuff, which is also fixed here
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76089 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 18:04:31 +00:00
Owen Anderson
6687990ca8
Now that we have contexts on types, convert some more internals to use contexts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75866 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 00:03:07 +00:00
Owen Anderson
50dead06ff
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
2009-07-15 23:53:25 +00:00
Chris Lattner
0df5c8e3f1
Update the C bindings to keep the LLVMTypeKind up to date between the C/C++
...
stuff. Patch by Zoltan Varga!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75842 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 22:00:31 +00:00
Owen Anderson
a90b3dc2f1
Move a few more convenience factory functions from Constant to LLVMContext.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75840 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 21:51:10 +00:00
Ted Kremenek
1935629829
Lexically order files in CMakeLists.txt files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75831 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 21:08:16 +00:00
Owen Anderson
23c8046a84
Move the ConstantStruct factory methods over to LLVMContext.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75830 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 21:00:46 +00:00
Rafael Espindola
87d1f47cb6
Revert 75798 to fix llvm build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75805 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 17:40:42 +00:00
Duncan Sands
7fe3dd5b7e
The static function TypeToFloatSemantics is now
...
unused - remove it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75798 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 17:19:24 +00:00
Duncan Sands
a4b0486684
Remove the v3i32 and v3f32 value types: they are not
...
native for any supported targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15 15:28:52 +00:00