Nick Lewycky
d84e130ecf
Fix ocaml bindings; add "available_externally" linkage type.
...
llvm-svn: 68945
2009-04-13 07:02:32 +00:00
Nick Lewycky
ecd6602046
Fix warning in .ll parser, detect and reject available_externally on function
...
declarations.
llvm-svn: 68944
2009-04-13 07:02:02 +00:00
Chris Lattner
b34a57161a
add AvailableExternally linkage to C bindings.
...
llvm-svn: 68942
2009-04-13 06:25:37 +00:00
Chris Lattner
c1bfdc9bb2
Add a new "available_externally" linkage type. This is intended
...
to support C99 inline, GNU extern inline, etc. Related bugzilla's
include PR3517, PR3100, & PR2933. Nothing uses this yet, but it
appears to work.
llvm-svn: 68940
2009-04-13 05:44:34 +00:00
Chris Lattner
57077413f1
eliminate unneeded parens.
...
llvm-svn: 68939
2009-04-13 05:38:23 +00:00
Nick Lewycky
2a36860ad9
Regenerate.
...
llvm-svn: 68938
2009-04-13 04:26:27 +00:00
Nick Lewycky
1a908fef1a
Link against libffi if available, fall back to "no external calls from
...
interpreter mode" when it's not.
llvm-svn: 68937
2009-04-13 04:26:06 +00:00
Nick Lewycky
92b1375909
Add paragraph tags.
...
llvm-svn: 68934
2009-04-13 02:03:40 +00:00
Chris Lattner
76d47b6629
fix PR3965:SIGINT handler not restored after calling ParseAST(),
...
patch by Alexei Svitkine!
llvm-svn: 68929
2009-04-12 23:33:13 +00:00
Rafael Espindola
ad8137187c
In X86DAGToDAGISel::MatchWrapper, if base or index are set, avoid matching
...
only if symbolic addresses are RIP relatives.
llvm-svn: 68924
2009-04-12 23:00:38 +00:00
Owen Anderson
33c00940cb
Use a hashtable for TargetRegisterClass::contains.
...
llvm-svn: 68922
2009-04-12 22:31:17 +00:00
Rafael Espindola
2b0a01bda9
refactor some code into X86DAGToDAGISel::MatchWrapper
...
llvm-svn: 68915
2009-04-12 21:55:03 +00:00
Nick Lewycky
29579d6ea6
Add Kaleidoscope to examples/ so that it gets built regularly and we'll notice
...
if an API change causes it to be out of date. The code is copied out of
LangImpl7.html.
llvm-svn: 68912
2009-04-12 20:47:23 +00:00
Nick Lewycky
2874a8dd3d
Fix compile error. Pointed out by mait on #llvm IRC!
...
llvm-svn: 68910
2009-04-12 20:15:44 +00:00
Chris Lattner
8ad1efdfe1
"There was a typo in my previous patch which leads to miscompilation of
...
strncat :(
strncat(foo, "bar", 99)
would be optimized to
memcpy(foo+strlen(foo), "bar", 100, 1)
instead of
memcpy(foo+strlen(foo), "bar", 4, 1)"
Patch by Benjamin Kramer!
llvm-svn: 68905
2009-04-12 18:22:33 +00:00
Rafael Espindola
412b15f4ed
Add tests for the parts of X86-64 TLS that are already implemented.
...
llvm-svn: 68901
2009-04-12 10:43:41 +00:00
Chris Lattner
6d6cf3ff4a
fix a cross-block fastisel crash handling overflow intrinsics.
...
See comment for details. This fixes rdar://6772169
llvm-svn: 68890
2009-04-12 07:51:14 +00:00
Chris Lattner
d1b365fc66
make UpdateValueMap handle the possiblity that we could be
...
copying into the right register, avoiding a copy.
llvm-svn: 68889
2009-04-12 07:46:30 +00:00
Chris Lattner
ed355b8551
optimize FastISel::UpdateValueMap to avoid duplicate map lookups,
...
and make it return the assigned register.
llvm-svn: 68888
2009-04-12 07:45:01 +00:00
Chris Lattner
6a9e77c980
simplify code by using IntrinsicInst.
...
llvm-svn: 68887
2009-04-12 07:36:01 +00:00
Chris Lattner
da05d37aa1
Add new TargetInstrDesc::hasImplicitUseOfPhysReg and
...
hasImplicitDefOfPhysReg methods. Use them to remove a
look in X86 fast isel.
llvm-svn: 68886
2009-04-12 07:26:51 +00:00
Chris Lattner
f03202e76d
add some optimizations for strncpy/strncat and factor some
...
code. Patch by Benjamin Kramer!
llvm-svn: 68885
2009-04-12 05:06:39 +00:00
Dan Gohman
ac11c8d30f
Revert r68847. It breaks the build on non-Darwin targets, with this message
...
from the assembler:
Error: unknown pseudo-op: `.debug_inlined'
llvm-svn: 68863
2009-04-11 15:57:04 +00:00
Devang Patel
6f907173e0
Keep track of inlined functions and their locations. This information is collected when nested llvm.dbg.func.start intrinsics are seen. (Right now, inliner removes nested llvm.dbg.func.start intrinisics during inlining.)
...
Create debug_inlined dwarf section using these information. This info is used by gdb, at least on Darwin, to enable better experience debugging inlined functions. See DwarfWriter.cpp for more information on structure of debug_inlined section.
llvm-svn: 68847
2009-04-11 00:16:47 +00:00
Chris Lattner
42b8e431b6
move a target-specific test into its directory so it isn't run if you
...
don't configure the ARM target in.
llvm-svn: 68843
2009-04-10 23:58:38 +00:00
Misha Brukman
6cee2e6033
Fixed spelling.
...
llvm-svn: 68821
2009-04-10 20:48:27 +00:00
Devang Patel
92ff43635b
DebugLabelFolder ruthlessly deletes redundant labels. However, sometimes the redundant labels is referenced by debug info somewhere else. This patch provies a way so that dwarf writer can mark labels as used.
...
llvm-svn: 68813
2009-04-10 18:58:59 +00:00
Bob Wilson
3b4991e76d
Clean up a bunch of whitespace issues and fix a comment typo.
...
No functional changes.
llvm-svn: 68808
2009-04-10 18:48:47 +00:00
Bill Wendling
8e3613d34b
Don't install the libLLVMHello.dylib example.
...
llvm-svn: 68807
2009-04-10 18:48:38 +00:00
Bill Wendling
e619558f13
Add compatibility_version and current_version flags when creating dylibs.
...
llvm-svn: 68801
2009-04-10 18:20:41 +00:00
Bill Wendling
87577a3498
Don't run "dsymutils" on .a files.
...
llvm-svn: 68795
2009-04-10 17:45:16 +00:00
Chris Lattner
0577b8e2ef
fix two problems with machine sinking:
...
1. Sinking would crash when the first instruction of a block was
sunk due to iterator problems.
2. Instructions could be sunk to their current block, causing an
infinite loop.
This fixes PR3968
llvm-svn: 68787
2009-04-10 16:38:36 +00:00
Dan Gohman
b85fd685f8
Now that register classes have names, include the name in debug output.
...
llvm-svn: 68786
2009-04-10 15:59:38 +00:00
Chris Lattner
8d5d3eaf95
fix a broken assertion in ilist_iterator, which caused it to crash in the
...
bad case instead of actually assert. Bug pointed out by Jakob Stoklund
Olesen!
llvm-svn: 68785
2009-04-10 15:47:17 +00:00
Chris Lattner
0b8f2eafad
fix typo, patch by Shlomi Fish!
...
llvm-svn: 68784
2009-04-10 15:38:51 +00:00
Sanjiv Gupta
6962a75641
Added code to handle spilling and reloading of FSRs.
...
llvm-svn: 68783
2009-04-10 15:10:14 +00:00
Rafael Espindola
88986ef511
Don't fold a load if the other operand is a TLS address.
...
With this we generate
movl %gs:0, %eax
leal i@NTPOFF(%eax), %eax
instead of
movl $i@NTPOFF, %eax
addl %gs:0, %eax
llvm-svn: 68778
2009-04-10 10:09:34 +00:00
Nick Lewycky
e5b361c13a
Cleanup. Remove redundant llvm:: , we don't need them since we're inside
...
namespace llvm already.
llvm-svn: 68774
2009-04-10 06:54:06 +00:00
Chris Lattner
af0fd068e1
Add a new Type::getPointerTo method, which is shorthand for
...
llvm::PointerType::get(). Patch by Anders Johnsen!
llvm-svn: 68772
2009-04-10 06:42:02 +00:00
Nick Lewycky
0f4dbe06e7
Add utility function to IRBuilder that takes the difference between two
...
pointers, taking into account the size of the pointed-to object.
Patch by Jeffrey Yasskin!
llvm-svn: 68768
2009-04-10 05:30:48 +00:00
Nick Lewycky
9c0705186a
Regenerate.
...
llvm-svn: 68767
2009-04-10 05:18:27 +00:00
Chris Lattner
26aee059ba
a few fixes to "addrspace(256) is reference offset of GS segment register".
...
It turns out that there are still several problems with this, will file a bugzilla.
llvm-svn: 68749
2009-04-10 00:16:23 +00:00
Bill Wendling
5d9538852f
Pass in the std::string parameter instead of returning it by value.
...
llvm-svn: 68747
2009-04-10 00:12:49 +00:00
Bill Wendling
ab0a8487ca
Constify getter methods.
...
llvm-svn: 68745
2009-04-10 00:00:25 +00:00
Dan Gohman
8121b3f88d
Remove the obsolete SelectionDAG::getNodeValueTypes and simplify
...
code that uses it by using SelectionDAG::getVTList instead.
llvm-svn: 68744
2009-04-09 23:54:40 +00:00
Dan Gohman
f0aeaae63c
Change the NumVTs field from short to int, since there's no
...
real need for it to be short.
llvm-svn: 68742
2009-04-09 23:53:31 +00:00
Bill Wendling
62c4c8bc44
StringMap<DIE*>::iterator::first() returns a pointer to the first character of
...
the key. This will cause it to create a new std::string, which isn't
wanted. Instead, pass back the "const char*". Modify the EmitString() method to
take a "const char*".
llvm-svn: 68741
2009-04-09 23:51:31 +00:00
Devang Patel
500dc5157e
Silence unused variable warning.
...
llvm-svn: 68735
2009-04-09 23:45:17 +00:00
Chris Lattner
4c5310e25e
ignore register zero in isRegTiedToUseOperand, following the example of
...
isRegTiedToDefOperand. Thanks to Bob for pointing this out!
llvm-svn: 68734
2009-04-09 23:33:34 +00:00
Owen Anderson
bd340ca405
Give register alias checking the hash table treatment too.
...
llvm-svn: 68730
2009-04-09 22:19:30 +00:00