| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
changes in llvm mainline.
llvm-svn: 52753
|
| |
|
|
| |
llvm-svn: 52751
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
<16 x float> is 64-byte aligned (for some reason),
which gets us into the stack realignment code. The
computation changing FP-relative offsets to SP-relative
was broken, assiging a spill temp to a location
also used for parameter passing. This
fixes it by rounding up the stack frame to a multiple
of the largest alignment (I concluded it wasn't fixable
without doing this, but I'm not very sure.)
llvm-svn: 52750
|
| |
|
|
| |
llvm-svn: 52749
|
| |
|
|
|
|
|
|
|
| |
string output routine from Constant. Update all
callers. Change debug intrinsic api slightly to
accomodate move of routine, these now return values
instead of strings.
llvm-svn: 52748
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
change it to sint_to_fp on targets where that is cheaper (and
visaversa of course). This allows us to compile uint_to_fp to:
_test:
movl 4(%esp), %eax
shrl $23, %eax
cvtsi2ss %eax, %xmm0
movl 8(%esp), %eax
movss %xmm0, (%eax)
ret
instead of:
.align 3
LCPI1_0: ## double
.long 0 ## double least significant word 4.5036e+15
.long 1127219200 ## double most significant word 4.5036e+15
.text
.align 4,0x90
.globl _test
_test:
subl $12, %esp
movl 16(%esp), %eax
shrl $23, %eax
movl %eax, (%esp)
movl $1127219200, 4(%esp)
movsd (%esp), %xmm0
subsd LCPI1_0, %xmm0
cvtsd2ss %xmm0, %xmm0
movl 20(%esp), %eax
movss %xmm0, (%eax)
addl $12, %esp
ret
llvm-svn: 52747
|
| |
|
|
| |
llvm-svn: 52746
|
| |
|
|
|
|
|
|
| |
the list to find it again later.
This speeds up live intervals from 0.37s to 0.30s on instcombine.
llvm-svn: 52745
|
| |
|
|
| |
llvm-svn: 52744
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tracked objects now have their type information tracked with them.
Enhanced summaries for ObjC methods to include the type information of the receiver.
Used the enhanced summaries to support the idiom that NSWindow owns itself (it sends a release message to itself upon close).
Added some comments.
Did some cleanups with the checker logic using operator overloading (reduced redundant code which I was concerned about being the source of bugs).
llvm-svn: 52741
|
| |
|
|
|
|
|
|
| |
shift.
- Add a readme entry for a missing vector_shuffle optimization that results in
awful codegen.
llvm-svn: 52740
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For this it is convenient to permit floats to
be used with EXTRACT_ELEMENT, so I tweaked
things to allow that. I also added libcalls
for ppcf128 to i32 forms of FP_TO_XINT, since
they exist in libgcc and this case can certainly
occur (and does occur in the testsuite) - before
the i64 libcall was being used. Also, the
XINT_TO_FP result seemed to be wrong when
the argument is an i128: the wrong fudge
factor was added (the i32 and i64 cases were
handled directly, but the i128 code fell
through to some generic softening code which
seemed to think it was i64 to f32!). So I
fixed it by adding a fudge factor that I
found in my breakfast cereal.
llvm-svn: 52739
|
| |
|
|
| |
llvm-svn: 52738
|
| |
|
|
| |
llvm-svn: 52736
|
| |
|
|
| |
llvm-svn: 52735
|
| |
|
|
|
|
|
| |
InvalidateInstructionCache method instead of calling through
a hook on the JIT. This is a host feature, not a target feature.
llvm-svn: 52734
|
| |
|
|
| |
llvm-svn: 52733
|
| |
|
|
| |
llvm-svn: 52732
|
| |
|
|
| |
llvm-svn: 52731
|
| |
|
|
|
|
| |
them back to registers!
llvm-svn: 52729
|
| |
|
|
| |
llvm-svn: 52728
|
| |
|
|
| |
llvm-svn: 52727
|
| |
|
|
| |
llvm-svn: 52726
|
| |
|
|
| |
llvm-svn: 52725
|
| |
|
|
|
|
|
|
| |
select_cc and friends. This code could be
factorized a bit but I'm not sure that it's
worth it.
llvm-svn: 52724
|
| |
|
|
| |
llvm-svn: 52723
|
| |
|
|
|
|
| |
the base SDNode's VTList.
llvm-svn: 52722
|
| |
|
|
|
|
| |
Nathan Keynes!
llvm-svn: 52721
|
| |
|
|
| |
llvm-svn: 52720
|
| |
|
|
|
|
| |
instead of CurFunctionDecl.
llvm-svn: 52719
|
| |
|
|
| |
llvm-svn: 52718
|
| |
|
|
| |
llvm-svn: 52707
|
| |
|
|
|
|
|
|
| |
Added abstract class MemSDNode for any Node that have an associated MemOperand
Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and
atomic.lss => atomic.load.sub
llvm-svn: 52706
|
| |
|
|
| |
llvm-svn: 52705
|
| |
|
|
| |
llvm-svn: 52704
|
| |
|
|
|
|
| |
- Avoid speculatively execute vector ops.
llvm-svn: 52703
|
| |
|
|
| |
llvm-svn: 52702
|
| |
|
|
| |
llvm-svn: 52701
|
| |
|
|
|
|
|
|
| |
Unfortunately, this slow the testcase down a little bit,
but only marginally.
llvm-svn: 52700
|
| |
|
|
| |
llvm-svn: 52699
|
| |
|
|
| |
llvm-svn: 52698
|
| |
|
|
| |
llvm-svn: 52697
|
| |
|
|
|
|
| |
be an assert; suggestion by Chris.
llvm-svn: 52696
|
| |
|
|
|
|
|
| |
Note that Parser::ParseCXXMemberSpecification is temporarily disabled until the Sema support is in place.
Once ParseCXXMemberSpecification is enabled, the Parser/cxx-class.cpp test will pass.
llvm-svn: 52694
|
| |
|
|
|
|
|
|
| |
of after, so that any reallocation it does doesn't get counted for the pass
being timed. This probably doesn't account for a timing discrepancy I was
looking into, but I'm fixing it anyway.
llvm-svn: 52693
|
| |
|
|
|
|
|
|
|
| |
test (doesn't work for any MMX vector types, it's
not me). Rewritten to use v2i16 which is generic
and going to stay that way; I think that preserves
the point of the test.
llvm-svn: 52692
|
| |
|
|
|
|
|
| |
load,store,call,return,bitcast. This is enough to
make call and return work.
llvm-svn: 52691
|
| |
|
|
|
|
|
|
| |
advance so we can pre-allocate it and just fill in
the entries. This improves the time for the AsmPrinter on InstructionCombining.cpp from 0.4248s to 0.3370s.
llvm-svn: 52690
|
| |
|
|
| |
llvm-svn: 52689
|
| |
|
|
| |
llvm-svn: 52688
|