Dan Gohman [Tue, 18 Sep 2007 14:59:14 +0000 (14:59 +0000)]
Move the entries for 64-bit CMP, IMUL, and a few others into the correct
tables so that they are eligible for reload/remat folding. And add
entries for JMP and CALL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42094
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Tue, 18 Sep 2007 12:49:39 +0000 (12:49 +0000)]
Adding ocaml language bindings for the vmcore and bitwriter libraries. These are
built atop the C language bindings, and user programs can link with them as
such:
# Bytecode
ocamlc -cc g++ llvm.cma llvmbitwriter.cma -o example example.ml
# Native
ocamlopt -cc g++ llvm.cmxa llvmbitwriter.cmxa -o example.opt example.ml
The vmcore.ml test exercises most/all of the APIs thus far bound. Unfortunately,
they're not yet numerous enough to write hello world. But:
$ cat example.ml
(* example.ml *)
open Llvm
open Llvm_bitwriter
let _ =
let filename = Sys.argv.(1) in
let m = create_module filename in
let v = make_int_constant i32_type 42 false in
let g = define_global "hello_world" v m in
if not (write_bitcode_file m filename) then exit 1;
dispose_module m;
$ ocamlc -cc g++ llvm.cma llvm_bitwriter.cma -o example example.ml
File "example.ml", line 11, characters 6-7:
Warning Y: unused variable g.
$ ./example example.bc
$ llvm-dis < example.bc
; ModuleID = '<stdin>'
@hello_world = global i32 42 ; <i32*> [#uses=0]
The ocaml test cases provide effective tests for the C interfaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42093
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Tue, 18 Sep 2007 12:27:13 +0000 (12:27 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42092
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Tue, 18 Sep 2007 12:26:59 +0000 (12:26 +0000)]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42091
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Tue, 18 Sep 2007 12:26:17 +0000 (12:26 +0000)]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42090
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Tue, 18 Sep 2007 10:14:30 +0000 (10:14 +0000)]
Incorporating review feedback for GC verifier patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42087
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 18 Sep 2007 09:10:16 +0000 (09:10 +0000)]
Don't pass back a reference to a temporary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42086
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 18 Sep 2007 05:28:19 +0000 (05:28 +0000)]
Update my entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42079
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 18 Sep 2007 05:03:44 +0000 (05:03 +0000)]
The exception handling function info should be reset for each new
function. The information isn't used heavily -- it's only used at the end
of exception handling emission -- so there's no need to cache it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42078
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Tue, 18 Sep 2007 03:18:57 +0000 (03:18 +0000)]
C bindings for libLLVMCore.a and libLLVMBitWriter.a.
- The naming prefix is LLVM.
- All types are represented using opaque references.
- Functions are not named LLVM{Type}{Method}; the names became
unreadable goop. Instead, they are named LLVM{ImperativeSentence}.
- Where an attribute only appears once in the class hierarchy (e.g.,
linkage only applies to values; parameter types only apply to
function types), the class is omitted from identifiers for
brevity. Tastes like methods.
- Strings are C strings or string/length tuples on a case-by-case
basis.
- APIs which give the caller ownership of an object are not mapped
(removeFromParent, certain constructor overloads). This keeps
keep memory management as simple as possible.
For each library with bindings:
llvm-c/<LIB>.h - Declares the bindings.
lib/<LIB>/<LIB>.cpp - Implements the bindings.
So just link with the library of your choice and use the C header
instead of the C++ one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42077
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Tue, 18 Sep 2007 02:09:34 +0000 (02:09 +0000)]
Fixing an comment in Module.h that refers to a nonexistent parameter.
Also adding some missing svn:ignores that've been bothering me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42076
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 18 Sep 2007 01:54:42 +0000 (01:54 +0000)]
Fix PR1657
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42075
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 18 Sep 2007 01:47:22 +0000 (01:47 +0000)]
Objective-C was generating EH frame info like this:
"_-[NSString(local) isNullOrNil]".eh = 0
.no_dead_strip "_-[NSString(local) isNullOrNil]".eh
The ".eh" should be inside the quotes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42074
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 17 Sep 2007 22:39:32 +0000 (22:39 +0000)]
Add support for appending a suffix to the end of a mangled name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42071
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 17 Sep 2007 22:26:41 +0000 (22:26 +0000)]
Bug fix and minor clean up of generated code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42069
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 17 Sep 2007 22:24:00 +0000 (22:24 +0000)]
Do not hide APInt::dump() inside #ifndef NDEBUG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42068
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Mon, 17 Sep 2007 21:41:15 +0000 (21:41 +0000)]
Fix broken default help strings for enable-shared, enable-static, and enable-fast-install. Regenerate configure script.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42066
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 17 Sep 2007 21:01:05 +0000 (21:01 +0000)]
Do not eliminate loop when it is invalid to do so. For example,
for(int i = 0; i < N; i++) {
if ( i == XYZ) {
A;
else
B;
}
C;
D;
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42058
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 17 Sep 2007 20:39:48 +0000 (20:39 +0000)]
Skeleton for transformations to truncate loop's iteration space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42054
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Mon, 17 Sep 2007 20:30:04 +0000 (20:30 +0000)]
Fix for PR1633: Verifier doesn't fully verify GC intrinsics
LLVM now enforces the following prototypes for the write barriers:
<ty>* @llvm.gcread(<ty2>*, <ty>**)
void @llvm.gcwrite(<ty>*, <ty2>*, <ty>**)
And for @llvm.gcroot, the first stack slot is verified to be an alloca or a
bitcast of an alloca.
Fixes test/CodeGen/Generic/GC/lower_gcroot.ll, which violated these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42051
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 17 Sep 2007 20:15:38 +0000 (20:15 +0000)]
Remove RSTRegClass case from loadRegFromStackSlot
and storeRegToStackSlot. Evan and I concluded this
should never be needed and it appears to be true.
(It if is needed, adjustment would be needed for
long double to work.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42049
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 17 Sep 2007 20:07:40 +0000 (20:07 +0000)]
Fix comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42048
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 17 Sep 2007 20:03:03 +0000 (20:03 +0000)]
This is not ideal but unbreaks build failure.
APInt::dump() is inside #ifndef NDEBUG, however SelectionDAG dump() routines are not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42047
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 17 Sep 2007 18:44:13 +0000 (18:44 +0000)]
Implement x86 long double in jit (not really
complete, but common cases work)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42043
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 17 Sep 2007 18:34:04 +0000 (18:34 +0000)]
Merge DenseMapKeyInfo & DenseMapValueInfo into DenseMapInfo
Add a new DenseMapInfo::isEqual method to allow clients to redefine
the equality predicate used when probing the hash table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42042
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Mon, 17 Sep 2007 18:05:59 +0000 (18:05 +0000)]
That's what i get for using carbon emacs in a terminal
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42040
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Mon, 17 Sep 2007 18:04:21 +0000 (18:04 +0000)]
Fix iterator so it doesn't sometimes report bits that aren't in the bitmap
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42039
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 17 Sep 2007 17:44:31 +0000 (17:44 +0000)]
Add a utility function to SDOperand for testing if a value is unused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42038
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 17 Sep 2007 17:42:53 +0000 (17:42 +0000)]
X86ISD::TEST is dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42037
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 17 Sep 2007 17:40:48 +0000 (17:40 +0000)]
regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42036
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 17 Sep 2007 17:31:57 +0000 (17:31 +0000)]
Instcombine x-((x/y)*y) into a remainder operator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42035
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Mon, 17 Sep 2007 17:04:44 +0000 (17:04 +0000)]
Adding myself to credits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42032
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 17 Sep 2007 15:19:08 +0000 (15:19 +0000)]
Add 64-bit jmp instructions to the list of instructions that
can terminate a block with no fall-through.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42029
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 17 Sep 2007 14:55:08 +0000 (14:55 +0000)]
Use xorl instead of xorq to enter a zero into a 64-bit register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42027
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 17 Sep 2007 14:49:27 +0000 (14:49 +0000)]
Emit integer x<1 as x<=0, as comparisons with zero (now includeing
64-bit) can use test instead of cmp with an immediate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42026
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 17 Sep 2007 14:35:24 +0000 (14:35 +0000)]
Use "test reg,reg" in place of "cmp reg,0" for 64-bit operands. This was
previously only done for 32-bit and smaller operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42024
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 17 Sep 2007 10:26:40 +0000 (10:26 +0000)]
Factor the trampoline transformation into a subroutine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42021
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 17 Sep 2007 00:38:27 +0000 (00:38 +0000)]
Implement x86 long double (uses host long double,
so only works on x86 target).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42019
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sun, 16 Sep 2007 23:59:53 +0000 (23:59 +0000)]
Fix bug in andersen's related to test_and_set.
Add operator == and != to SparseBitVector.
Simplify code for test_and_set
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42018
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sun, 16 Sep 2007 22:31:47 +0000 (22:31 +0000)]
Fix a few bugs related to zero'ing of elements
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42017
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Sun, 16 Sep 2007 21:45:02 +0000 (21:45 +0000)]
Rewrite of andersen's to be about 100x faster, cleaner, and begin to support field sensitivity
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42016
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 16 Sep 2007 19:21:08 +0000 (19:21 +0000)]
Follow-up to patch r41999. Make the conditional that emits the personality stub
match the conditional that turns on exception handling emittion in the asm
printer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42008
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Sun, 16 Sep 2007 16:51:49 +0000 (16:51 +0000)]
Adjust per revew comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42002
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 16 Sep 2007 10:36:17 +0000 (10:36 +0000)]
Only emit the personality function as a global value if the backend actually
supports it. This solves this error on the Darwin x86-64 platform:
$ cat testcase.ii
struct A {
A();
};
A *bork() {
return new A;
}
$ llvm-g++ -arch x86_64 -c testcase.ii
/var/tmp//cc3U8fd8.s:52:unknown section type: non_lazy_symbol_pointers
/var/tmp//cc3U8fd8.s:52:Rest of line ignored. 1st junk character valued 76 (L).
/var/tmp//cc3U8fd8.s:53:Unknown pseudo-op: .indirect_symbol
/var/tmp//cc3U8fd8.s:53:Rest of line ignored. 1st junk character valued 95 (_).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41999
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 16 Sep 2007 08:04:16 +0000 (08:04 +0000)]
Be more careful when constant-folding PHI nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41998
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 15 Sep 2007 17:38:04 +0000 (17:38 +0000)]
remove obsolete tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41984
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 15 Sep 2007 06:51:03 +0000 (06:51 +0000)]
Fix PR1666, SPASS with the CBE and 254.gap with the CBE.
GCC optimizes away things like ptr < NULL to false. To "fix" this,
have the CBE emit casts of pointers to intptr_t when doing relational
pointer comparisons.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41983
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 15 Sep 2007 05:46:41 +0000 (05:46 +0000)]
New testcase for PR1662. GCC trees are horrible :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41979
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 14 Sep 2007 23:17:45 +0000 (23:17 +0000)]
Add patterns for SHLD64* and SHRD64*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41975
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Sep 2007 22:57:00 +0000 (22:57 +0000)]
fix a gcc warning: comparison between signed and unsigned integer expressions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41972
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 14 Sep 2007 22:54:46 +0000 (22:54 +0000)]
Remove RLE from the headers, since the pass itself is gone now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41971
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 14 Sep 2007 22:33:52 +0000 (22:33 +0000)]
Remove RLE. It is subsumed by GVN.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41968
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 14 Sep 2007 22:26:36 +0000 (22:26 +0000)]
Remove the assumption that FP's are either float or
double from some of the many places in the optimizers
it appears, and do something reasonable with x86
long double.
Make APInt::dump() public, remove newline, use it to
dump ConstantSDNode's.
Allow APFloats in FoldingSet.
Expand X86 backend handling of long doubles (conversions
to/from int, mostly).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41967
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 14 Sep 2007 21:48:26 +0000 (21:48 +0000)]
Add implicit def of EFLAGS on those instructions that may modify flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41962
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 14 Sep 2007 20:48:42 +0000 (20:48 +0000)]
And an FoldingSetImpl::NodeID::AddInteger overload for int64_t, to avoid
ambiguity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41960
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 14 Sep 2007 20:37:18 +0000 (20:37 +0000)]
Add explicit triples to avoid default behavior that varies by host.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41959
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 14 Sep 2007 20:33:02 +0000 (20:33 +0000)]
Remove isReg, isImm, and isMBB, and change all their users to use
isRegister, isImmediate, and isMachineBasicBlock, which are equivalent,
and more popular.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41958
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 14 Sep 2007 20:11:40 +0000 (20:11 +0000)]
Change "tmp." to "tmp" for temporaries created by ScalarEvolutionExpander
for consistency with many other transforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41957
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 14 Sep 2007 20:08:19 +0000 (20:08 +0000)]
Remove spurious consts. This fixes warnings with compilers that
are strict about such things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41956
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 14 Sep 2007 15:48:13 +0000 (15:48 +0000)]
Add support for functions with byval arguments on x86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41953
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Sep 2007 03:41:21 +0000 (03:41 +0000)]
Fix a logic error in ValueIsOnlyUsedLocallyOrStoredToOneGlobal that caused
miscompilation of 188.ammp. Reject select and bitcast in
ValueIsOnlyUsedLocallyOrStoredToOneGlobal because RewriteHeapSROALoadUser can't handle it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41950
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 14 Sep 2007 03:07:24 +0000 (03:07 +0000)]
silence a bogus gcc warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41949
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 14 Sep 2007 01:57:02 +0000 (01:57 +0000)]
Fix comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41947
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Fri, 14 Sep 2007 01:24:13 +0000 (01:24 +0000)]
Change to 2.2svn.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41941
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 14 Sep 2007 01:13:55 +0000 (01:13 +0000)]
Temporary reverting r41817
(http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-
20070910/053370.html). It's
causing SPASS to fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41938
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Sep 2007 21:31:36 +0000 (21:31 +0000)]
Teach GlobalLoadUsesSimpleEnoughForHeapSRA and the SROA rewriter how to handle
a limited form of PHI nodes. This finally fixes PR1639, speeding 179.art up
from 7.84s to 3.13s on PPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41933
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Sep 2007 18:00:31 +0000 (18:00 +0000)]
be tolerant of PHI nodes when rewriting heap SROA code. This is a step
along the way of PR1639
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41930
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Sep 2007 17:29:05 +0000 (17:29 +0000)]
refactor some code, no functionality change. On the path to PR1639
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41929
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Sep 2007 16:37:20 +0000 (16:37 +0000)]
Make ValueIsOnlyUsedLocallyOrStoredToOneGlobal smart enough to see through
bitcasts and phis. This is a step to fixing PR1639.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41928
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Sep 2007 16:30:19 +0000 (16:30 +0000)]
Make AllUsesOfLoadedValueWillTrapIfNull strong enough to see through PHI
nodes. This is the first step of the fix for PR1639.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41927
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Sep 2007 06:18:04 +0000 (06:18 +0000)]
remove dead enum value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41925
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Sep 2007 06:15:57 +0000 (06:15 +0000)]
Make single-argument ctors explicit to avoid tricky bugs :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41924
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 13 Sep 2007 06:09:48 +0000 (06:09 +0000)]
Fix build problems on Cygwin (PR1652), patch by Patrick Walton.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41923
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 13 Sep 2007 00:16:29 +0000 (00:16 +0000)]
Added getNumDefs().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41901
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 13 Sep 2007 00:06:00 +0000 (00:06 +0000)]
Bug fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41900
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 12 Sep 2007 23:45:46 +0000 (23:45 +0000)]
Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41899
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 12 Sep 2007 23:39:49 +0000 (23:39 +0000)]
Yet another getTargetNode variant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41898
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 12 Sep 2007 23:30:14 +0000 (23:30 +0000)]
Initial support for multi-result patterns:
1.
[(set GR32:$dst, (add GR32:$src1, GR32:$src2)),
(modify EFLAGS)]
This indicates the source pattern expects the instruction would produce 2 values. The first is the result of the addition. The second is an implicit definition in register EFLAGS.
2.
def : Pat<(parallel (addc GR32:$src1, GR32:$src2), (modify EFLAGS)), ()>
Similar to #1 except this is used for def : Pat patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41897
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 12 Sep 2007 23:02:04 +0000 (23:02 +0000)]
Fixed a typo that's causing a missing kill marker.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41893
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 12 Sep 2007 18:24:00 +0000 (18:24 +0000)]
add a new BF->LLVM translator, contributed by Sterling Stein.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41881
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 12 Sep 2007 17:53:10 +0000 (17:53 +0000)]
Change llvm.gcroot to not init the root to null at runtime, this prevents
using it for live-in values etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41879
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 12 Sep 2007 03:31:28 +0000 (03:31 +0000)]
Generated files for previous patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41876
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 12 Sep 2007 03:30:33 +0000 (03:30 +0000)]
Revise previous patch per review comments.
Next round of x87 long double stuff.
Getting close now, basically works.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41875
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 12 Sep 2007 01:22:05 +0000 (01:22 +0000)]
Compensate for partCount change in Bogus definition
(could break hash table in ConstantFP)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41874
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 11 Sep 2007 23:55:40 +0000 (23:55 +0000)]
Enable indirect encoding for the personality function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41873
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Tue, 11 Sep 2007 22:58:27 +0000 (22:58 +0000)]
Move dump out of class, use "\n" instead of endl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41872
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 11 Sep 2007 22:34:47 +0000 (22:34 +0000)]
Sometimes a MI can define a register as well as defining a super-register at the
same time. Do not mark the "smaller" def as dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41871
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 11 Sep 2007 22:20:27 +0000 (22:20 +0000)]
Fix date :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41870
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 11 Sep 2007 22:12:26 +0000 (22:12 +0000)]
Testcase for recent pragma pack stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41869
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 11 Sep 2007 19:55:27 +0000 (19:55 +0000)]
Remove (somewhat confusing) Imp<> helper, use let Defs = [], Uses = [] instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41863
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 11 Sep 2007 19:53:28 +0000 (19:53 +0000)]
Added status flags register: EFLAGS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41862
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 11 Sep 2007 19:52:18 +0000 (19:52 +0000)]
Allow set operators with multiple destinations, i.e. (set x, y, (op a, b)).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41861
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 11 Sep 2007 18:33:39 +0000 (18:33 +0000)]
Generated files for previous patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41859
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 11 Sep 2007 18:32:33 +0000 (18:32 +0000)]
Add APInt interfaces to APFloat (allows directly
access to bits). Use them in place of float and
double interfaces where appropriate.
First bits of x86 long double constants handling
(untested, probably does not work).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41858
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Berlin [Tue, 11 Sep 2007 17:42:22 +0000 (17:42 +0000)]
Convert to use ilist and non-pointer lists for extra goodness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41855
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 11 Sep 2007 17:24:38 +0000 (17:24 +0000)]
Add accessor method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41854
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 11 Sep 2007 17:20:55 +0000 (17:20 +0000)]
Add a bool to indicate if we should set the "indirect encoding" bit in the Dwarf
information for EH.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41852
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Sep 2007 17:12:32 +0000 (17:12 +0000)]
Reenable libgc and libprofile is explicitly requested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41851
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Sep 2007 17:10:52 +0000 (17:10 +0000)]
remove an obsolete library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41850
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 11 Sep 2007 17:09:54 +0000 (17:09 +0000)]
update this to use llvm-config, patch by Jose M. Moya
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41849
91177308-0d34-0410-b5e6-
96231b3b80d8