Gordon Henriksen
46137f1e2e
Adding bindings for memory buffers and module providers. Switching
...
to exceptions rather than variants for error handling in Ocaml.
llvm-svn: 45226
2007-12-19 22:30:40 +00:00
Duncan Sands
56f3add5b7
When inlining through an 'nounwind' call, mark inlined
...
calls 'nounwind'. It is important for correct C++
exception handling that nounwind markings do not get
lost, so this transformation is actually needed for
correctness.
llvm-svn: 45218
2007-12-19 21:13:37 +00:00
Ted Kremenek
b8c85efce1
Added "GetCurrentDirectory()" to sys::Path.
...
llvm-svn: 45182
2007-12-18 22:07:33 +00:00
Ted Kremenek
a0ff305551
Added "isDirectory" method to llvm::sys::Path.
...
llvm-svn: 45168
2007-12-18 19:46:22 +00:00
Chris Lattner
cb4a54fe17
remove obviously dead uses of IncludeFile.
...
llvm-svn: 45165
2007-12-18 19:15:48 +00:00
Chris Lattner
fabeb5e6c1
remove a dead annotation
...
llvm-svn: 45163
2007-12-18 19:04:24 +00:00
Ted Kremenek
200bc2d387
Added some sectioning comments to Serialize.h.
...
Added additional serialization functors for use with std::foreach.
llvm-svn: 45162
2007-12-18 18:25:55 +00:00
Duncan Sands
242f80be86
Rename isNoReturn to doesNotReturn, and isNoUnwind to
...
doesNotThrow.
llvm-svn: 45160
2007-12-18 09:59:50 +00:00
Evan Cheng
8b4947fe98
Remove int_x86_sse2_movl_dq. It's replaced with a string compare.
...
llvm-svn: 45140
2007-12-18 01:04:25 +00:00
Evan Cheng
21f2afd4df
These have matching builtin's in 4.2.
...
llvm-svn: 45139
2007-12-18 00:52:20 +00:00
Bill Wendling
0df69490dd
s/hasSideEffects/hasUnmodelledSideEffects/g
...
llvm-svn: 45133
2007-12-17 23:19:54 +00:00
Evan Cheng
d9df071ead
Bring back int_x86_sse2_movl_dq intrinsic for backward compatibility. Make sure
...
it's auto-upgraded to a shufflevector instruction.
llvm-svn: 45131
2007-12-17 22:33:23 +00:00
Ted Kremenek
28a75d4674
Modified Deserializer::ReadCStr to allow C-strings to be read into a
...
std::vector<char> starting from any index in the vector.
llvm-svn: 45129
2007-12-17 22:25:12 +00:00
Bill Wendling
2d672998c5
Add "hasSideEffects" method to MachineInstrInfo class.
...
llvm-svn: 45126
2007-12-17 21:53:30 +00:00
Bill Wendling
ec8be72a8b
As per feedback, revised comments to (hopefully) make the different side effect
...
flags clearer.
llvm-svn: 45120
2007-12-17 21:02:07 +00:00
Devang Patel
3d301e65ad
Add cast operators in LLVMFoldingBuilder.
...
Patch by Richard Pennington.
llvm-svn: 45115
2007-12-17 19:06:26 +00:00
Chris Lattner
ea78f7ae10
cleanup this code, making it more "llvm-like".
...
Add comments to reset indicating that it deletes its pointer.
Add a new take() method, which can be used to get the pointer
without it being deleted.
llvm-svn: 45112
2007-12-17 18:58:23 +00:00
Gordon Henriksen
ef2c27d164
C and Ocaml bindings for address spaces, for that burgeoning market
...
for Ocaml-based compilers targeting embedded devices. :)
llvm-svn: 45096
2007-12-17 16:08:32 +00:00
Christopher Lamb
a608afb52e
Change the PointerType api for creating pointer types. The old functionality of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space.
...
llvm-svn: 45082
2007-12-17 01:12:55 +00:00
Duncan Sands
bf62f62058
Make instcombine promote inline asm calls to 'nounwind'
...
calls. Remove special casing of inline asm from the
inliner. There is a potential problem: the verifier
rejects invokes of inline asm (not sure why). If an
asm call is not marked "nounwind" in some .ll, and
instcombine is not run, but the inliner is run, then
an illegal module will be created. This is bad but
I'm not sure what the best approach is. I'm tempted
to remove the check in the verifier...
llvm-svn: 45073
2007-12-16 15:51:49 +00:00
Anton Korobeynikov
685e0a62bf
Define addString() and lookup() out-of-line to dissuade the C++ compiler from inlining it.
...
llvm-svn: 45068
2007-12-16 01:36:16 +00:00
Anton Korobeynikov
b4378fc9b8
Provide GraphTraits and DOTGraphTraits interface for Trie.
...
Retoss private/public stuff.
Make copy ctor and operator= private.
llvm-svn: 45067
2007-12-16 01:27:04 +00:00
Anton Korobeynikov
4ef9822114
Constify graph arguments
...
llvm-svn: 45066
2007-12-16 00:42:19 +00:00
Anton Korobeynikov
7e9eec3dfc
Use references in DF iterators. This eliminates copy-ctor calls on huge objects (graphs)
...
llvm-svn: 45063
2007-12-15 22:23:24 +00:00
Evan Cheng
063e019ff6
__builtin_ia32_movqv4si is now expanded to a shuffle.
...
llvm-svn: 45057
2007-12-15 02:54:12 +00:00
Dan Gohman
80af3e255d
Add explicit keywords, and fix a minor typo that they uncovered.
...
llvm-svn: 45034
2007-12-14 15:41:34 +00:00
Dan Gohman
a0d3f7d88c
Fix a typo in a comment.
...
llvm-svn: 45032
2007-12-14 15:13:08 +00:00
Dan Gohman
40634cd710
Fix a typo in a comment.
...
llvm-svn: 45031
2007-12-14 15:11:58 +00:00
Anders Carlsson
900a684ae7
All MMX shift instructions took a <2 x i32> vector as the shift amount parameter. Change this to be <1 x i64> instead, which matches the assembler instruction.
...
llvm-svn: 45027
2007-12-14 06:38:54 +00:00
Bill Wendling
c8c611e88f
Add flags to indicate that there are "never" side effects or that there "may be"
...
side effects for machine instructions.
llvm-svn: 45022
2007-12-14 01:48:59 +00:00
Evan Cheng
740c2d731f
Cosmetic change.
...
llvm-svn: 44961
2007-12-12 23:15:59 +00:00
Evan Cheng
64a1febf9a
Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled.
...
llvm-svn: 44960
2007-12-12 23:12:09 +00:00
Duncan Sands
47526c4a42
Remove host endianness info from TargetData and
...
put it in a new header System/Host.h instead.
Instead of getting the endianness from configure,
calculate it directly.
llvm-svn: 44959
2007-12-12 23:03:45 +00:00
Dan Gohman
4bf237b584
Remove a forward-declaration for a non-existant class.
...
llvm-svn: 44955
2007-12-12 22:25:09 +00:00
Anton Korobeynikov
638a7cffbc
Use vector for child storage instead of map. This will also make
...
our life during future GraphTraits'ing slightly easier.
llvm-svn: 44952
2007-12-12 19:08:44 +00:00
Christopher Lamb
6d12d7c0fe
Implement part of review feedback for address spaces.
...
llvm-svn: 44933
2007-12-12 08:44:39 +00:00
Bill Wendling
e8eea25ad3
Bit masks conflicted. Needed to bump them by one.
...
llvm-svn: 44903
2007-12-12 01:51:58 +00:00
Gordon Henriksen
3f070cf3b9
Add (very basic) bindings for ModuleProvider.
...
llvm-svn: 44899
2007-12-12 01:04:30 +00:00
Anton Korobeynikov
f5c6b49537
Remove Trie::Edge class. Now edge labels are stored into nodes itself.
...
llvm-svn: 44880
2007-12-11 21:55:38 +00:00
Wojciech Matyjewicz
f9fb2b23fe
Use correct member access operator.
...
(my test commit as well)
llvm-svn: 44868
2007-12-11 17:46:25 +00:00
Christopher Lamb
7368604860
Implement address space attribute for LLVM pointer types. Address spaces are
...
regions of memory that have a target specific relationship, as described in the
Embedded C Technical Report.
This also implements the 2007-12-11-AddressSpaces test,
which demonstrates how address space attributes can be used in LLVM IR.
In addition, this patch changes the bitcode signature for stores (in a backwards
compatible manner), such that the pointer type, rather than the pointee type, is
encoded. This permits type information in the pointer (e.g. address space) to be
preserved for stores.
LangRef updates are forthcoming.
llvm-svn: 44858
2007-12-11 08:59:05 +00:00
Anton Korobeynikov
0fc72aee23
Add first and really dirty version of generic Trie structure
...
llvm-svn: 44851
2007-12-11 06:53:44 +00:00
Evan Cheng
45c08c8337
Switch over to MachineLoopInfo.
...
llvm-svn: 44838
2007-12-11 02:09:15 +00:00
Gordon Henriksen
c6f9e0beef
CollectorMetadata and Collector are rejiggered to get along with
...
per-function collector model. Collector is now the factory for
CollectorMetadata, so the latter may be subclassed.
llvm-svn: 44827
2007-12-11 00:30:17 +00:00
Chris Lattner
f7c53191c0
Move TargetData::hostIsLittleEndian out of line, which means we
...
don't have to #include config.h in it. #including config.h breaks
other projects that have their own autoconf stuff and try to #include
the llvm headers. One obscure example is llvm-gcc.
llvm-svn: 44825
2007-12-11 00:28:59 +00:00
Gordon Henriksen
aff6e2bba2
Adding Ocaml bindings for the bitreader as requested by Sarah
...
Thompson. Usage should be something like this:
open Llvm
open Llvm_bitreader
match read_bitcode_file fn with
| Bitreader_failure msg ->
prerr_endline msg
| Bitreader_success m ->
...;
dispose_module m
Compile with: ocamlc llvm.cma llvm_bitreader.cma
ocamlopt llvm.cmxa llvm_bitreader.cmxa
llvm-svn: 44824
2007-12-11 00:20:48 +00:00
Chris Lattner
5ca42cd342
Fix PR1850 by removing an unsafe transformation from VMCore/ConstantFold.cpp.
...
Reimplement the xform in Analysis/ConstantFolding.cpp where we can use
targetdata to validate that it is safe. While I'm in there, fix some const
correctness issues and generalize the interface to the "operand folder".
llvm-svn: 44817
2007-12-10 22:53:04 +00:00
Ted Kremenek
d0f4955b73
Added two bounds checks to the BitVector class to detect
...
out-of-bounds bit accesses. The checks are only performed
in a Debug build.
llvm-svn: 44815
2007-12-10 22:28:35 +00:00
Chris Lattner
f6fc9924a4
split isBinaryOp into a static and member version.
...
llvm-svn: 44814
2007-12-10 22:18:53 +00:00
Duncan Sands
b7ac459292
Make PruneEH update the nounwind/noreturn attributes
...
on functions as it calculates them.
llvm-svn: 44802
2007-12-10 19:09:40 +00:00