| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 103898
|
| |
|
|
|
|
| |
LLVMgold.so both in both the build and install directories.
llvm-svn: 103897
|
| |
|
|
| |
llvm-svn: 103896
|
| |
|
|
|
|
| |
entirely sure what this does, to be honest.
llvm-svn: 103895
|
| |
|
|
|
|
|
| |
ObjCObjectTypeLoc. This should clear up some valgrind errors we've
been seeing.
llvm-svn: 103894
|
| |
|
|
|
|
|
| |
can probably do this for us, but it's actually somewhat nicer to write it
out here.
llvm-svn: 103893
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
__cxa_guard_abort along the exceptional edge into (in effect) a nested
"try" that rethrows after aborting. Fixes PR7144 and the remaining
Boost.ProgramOptions failures, along with the regressions that r103880
caused.
The crucial difference between this and r103880 is that we now follow
LLVM's little dance with the llvm.eh.exception and llvm.eh.selector
calls, then use _Unwind_Resume_or_Rethrow to rethrow.
llvm-svn: 103892
|
| |
|
|
| |
llvm-svn: 103891
|
| |
|
|
|
|
| |
because it's causing strange linker errors. Unfixes PR7144.
llvm-svn: 103890
|
| |
|
|
| |
llvm-svn: 103889
|
| |
|
|
| |
llvm-svn: 103888
|
| |
|
|
|
|
| |
in Objective-c++ mode. Fixes radar 7986354.
llvm-svn: 103887
|
| |
|
|
|
|
| |
algorithms
llvm-svn: 103886
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The implementation in LegalizeIntegerTypes to handle this as
sint64->float + appropriate power of 2 is subject to double rounding,
considered incorrect by numerics people. Use this implementation only
when it is safe. This leads to using library calls in some cases
that produced inline code before, but it's correct now.
(EVTToAPFloatSemantics belongs somewhere else, any suggestions?)
Add a correctly rounding (though not particularly fast) conversion
that uses X87 80-bit computations for x86-32.
7885399, 5901940. This shows up in gcc.c-torture/execute/ieee/rbug.c
in the gcc testsuite on some platforms.
llvm-svn: 103883
|
| |
|
|
| |
llvm-svn: 103882
|
| |
|
|
|
|
| |
This can be extended later on to handle more "complex" constants.
llvm-svn: 103881
|
| |
|
|
|
|
|
|
| |
__cxa_guard_abort along the exceptional edge into (in effect) a nested
"try" that rethrows after aborting. Fixes PR7144 and the remaining
Boost.ProgramOptions failures.
llvm-svn: 103880
|
| |
|
|
| |
llvm-svn: 103879
|
| |
|
|
|
|
| |
Temporary emit it as raw bytes until it will be added to binutils as well.
llvm-svn: 103878
|
| |
|
|
|
|
| |
Evzen Muller!
llvm-svn: 103877
|
| |
|
|
|
|
| |
patch by Evzen Muller!
llvm-svn: 103876
|
| |
|
|
| |
llvm-svn: 103875
|
| |
|
|
| |
llvm-svn: 103874
|
| |
|
|
| |
llvm-svn: 103873
|
| |
|
|
|
|
|
| |
destroy the variable along the exceptional edge; it's only during
normal execution that we avoid destroying this variable.
llvm-svn: 103872
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ObjCObjectType, which is basically just a pair of
one of {primitive-id, primitive-Class, user-defined @class}
with
a list of protocols.
An ObjCObjectPointerType is therefore just a pointer which always points to
one of these types (possibly sugared). ObjCInterfaceType is now just a kind
of ObjCObjectType which happens to not carry any protocols.
Alter a rather large number of use sites to use ObjCObjectType instead of
ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather
than hashing them in a FoldingSet. Remove some number of methods that are no
longer used, at least after this patch.
By simplifying ObjCObjectPointerType, we are now able to easily remove and apply
pointers to Objective-C types, which is crucial for a certain kind of ObjC++
metaprogramming common in WebKit.
llvm-svn: 103870
|
| |
|
|
|
|
|
|
| |
a condition's grouping. Every other use of Allocatable.test(Hint) groups it the
same way as it is indented, so move the parentheses to agree with that
grouping.
llvm-svn: 103869
|
| |
|
|
| |
llvm-svn: 103868
|
| |
|
|
|
|
|
|
|
| |
return statements. We perform NRVO only when all of the return
statements in the function return the same variable. Fixes some link
failures in Boost.Interprocess (which is relying on NRVO), and
probably improves performance for some C++ applications.
llvm-svn: 103867
|
| |
|
|
|
|
|
|
| |
When working top-down in a basic block, substituting physregs for virtregs, the use-def chains are kept up to date. That means we can recognize a virtreg kill by the use-def chain becoming empty.
This makes the fast allocator independent of incoming kill flags.
llvm-svn: 103866
|
| |
|
|
|
|
|
|
|
|
|
|
| |
return value optimization. Sema marks return statements with their
NRVO candidates (which may or may not end up using the NRVO), then, at
the end of a function body, computes and marks those variables that
can be allocated into the return slot.
I've checked this locally with some debugging statements (not
committed), but there won't be any tests until CodeGen comes along.
llvm-svn: 103865
|
| |
|
|
|
|
|
| |
implicit conversions where needed. This fixes an error reported
on cfe-dev, not really worth a testcase though.
llvm-svn: 103864
|
| |
|
|
|
|
|
| |
inliner did in r103653. Why does the always inliner even bother with cost
estimates anyways?
llvm-svn: 103858
|
| |
|
|
| |
llvm-svn: 103857
|
| |
|
|
| |
llvm-svn: 103856
|
| |
|
|
| |
llvm-svn: 103855
|
| |
|
|
|
|
|
| |
allow target to override it in order to map register classes to illegal
but synthesizable types. e.g. v4i64, v8i64 for ARM / NEON.
llvm-svn: 103854
|
| |
|
|
| |
llvm-svn: 103852
|
| |
|
|
| |
llvm-svn: 103851
|
| |
|
|
| |
llvm-svn: 103850
|
| |
|
|
|
|
|
|
|
|
| |
"return" statement and mark the corresponding CXXConstructExpr as
elidable. Teach CodeGen that eliding a temporary is different from
eliding an object construction.
This is just a baby step toward NRVO.
llvm-svn: 103849
|
| |
|
|
| |
llvm-svn: 103843
|
| |
|
|
| |
llvm-svn: 103842
|
| |
|
|
|
|
| |
<rdar://problem/7987039>.
llvm-svn: 103837
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instructions.
e.g.
%reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0
%reg1027<def> = EXTRACT_SUBREG %reg1026, 6
%reg1028<def> = EXTRACT_SUBREG %reg1026<kill>, 5
...
%reg1029<def> = REG_SEQUENCE %reg1028<kill>, 5, %reg1027<kill>, 6, %reg1028, 7, %reg1027, 8, %reg1028, 9, %reg1027, 10, %reg1030<kill>, 11, %reg1032<kill>, 12
After REG_SEQUENCE is eliminated, we are left with:
%reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0
%reg1029:6<def> = EXTRACT_SUBREG %reg1026, 6
%reg1029:5<def> = EXTRACT_SUBREG %reg1026<kill>, 5
The regular coalescer will not be able to coalesce reg1026 and reg1029 because it doesn't
know how to combine sub-register indices 5 and 6. Now 2-address pass will consult the
target whether sub-registers 5 and 6 of reg1026 can be combined to into a larger
sub-register (or combined to be reg1026 itself as is the case here). If it is possible,
it will be able to replace references of reg1026 with reg1029 + the larger sub-register
index.
llvm-svn: 103835
|
| |
|
|
| |
llvm-svn: 103834
|
| |
|
|
| |
llvm-svn: 103833
|
| |
|
|
|
|
| |
setting kill flags.
llvm-svn: 103832
|
| |
|
|
| |
llvm-svn: 103831
|
| |
|
|
| |
llvm-svn: 103830
|