| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 103989
|
| |
|
|
|
|
| |
and cleanup comments as well.
llvm-svn: 103985
|
| |
|
|
|
|
| |
it with an IMPLICIT_DEF rather than deleting it or else it would be left without a def.
llvm-svn: 103984
|
| |
|
|
| |
llvm-svn: 103982
|
| |
|
|
|
|
| |
sections, not all sections in the text segment.
llvm-svn: 103981
|
| |
|
|
|
|
| |
- Of questionable utility, since in general anything which wants to do this should probably be within a target specific hook, which can rely on the sections being of the appropriate type. However, it can be useful for short term hacks.
llvm-svn: 103980
|
| |
|
|
|
|
|
| |
- This fixes a string table mismatch with 'as' when two new symbols are defined
in a single instruction.
llvm-svn: 103979
|
| |
|
|
|
|
|
| |
This fixes the miscompilations of MultiSource/Applications/JM/l{en,de}cod.
Clang now successfully self hosts in a debug build with the fast register allocator.
llvm-svn: 103975
|
| |
|
|
| |
llvm-svn: 103974
|
| |
|
|
| |
llvm-svn: 103971
|
| |
|
|
|
|
| |
Obvious in retrospect but not fun to debug.
llvm-svn: 103969
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Don't clear weak reference flag, 'as' was only "trying" to do this, it wasn't
actually succeeding.
- Clear the "lazy bound" bit when we mark something external. This corresponds
roughly to the lazy clearing of the bit that 'as' implements in
symbol_table_lookup.
- The exact meaning of these flags appears pretty loose, since 'as' isn't very
consistent. For now we just try to match 'as', we will clean this up one day
hopefully.
llvm-svn: 103964
|
| |
|
|
| |
llvm-svn: 103962
|
| |
|
|
| |
llvm-svn: 103961
|
| |
|
|
|
|
| |
Using NEON load / store multiple instructions will no longer create gobs of vmov of D registers!
llvm-svn: 103960
|
| |
|
|
|
|
|
|
| |
variable has not yet been used in an expression. This allows us to support a few
cases that show up in real code (mostly because gcc generates it for Objective-C
on Darwin), without giving up a reasonable semantic model for assignment.
llvm-svn: 103950
|
| |
|
|
|
|
|
|
|
| |
While that approach works wonders for register pressure, it tends to break
everything.
This should unbreak the arm-linux builder and fix a number of miscompilations.
llvm-svn: 103946
|
| |
|
|
| |
llvm-svn: 103940
|
| |
|
|
|
|
|
|
|
|
| |
out aliases when allocating. Clean up allocVirtReg().
Use calcSpillCost() to allow more aggressive hinting. Now the hint is always
taken unless blocked by a reserved register. This leads to more coalescing,
lower register pressure, and less spilling.
llvm-svn: 103939
|
| |
|
|
| |
llvm-svn: 103936
|
| |
|
|
|
|
| |
This makes allocation independent on the ordering of use-def chains.
llvm-svn: 103935
|
| |
|
|
| |
llvm-svn: 103934
|
| |
|
|
|
|
| |
This is safe to do because the physreg has been marked UsedInInstr and the kill flag will be set on the last operand using the virtreg if there are more then one.
llvm-svn: 103933
|
| |
|
|
|
|
| |
subregister indices.
llvm-svn: 103931
|
| |
|
|
|
|
|
| |
through the very long list of call-clobbered registers. We just assume all
registers are clobbered.
llvm-svn: 103930
|
| |
|
|
| |
llvm-svn: 103929
|
| |
|
|
|
|
| |
symbol to the file as we have it. Simplifies out tbss handling.
llvm-svn: 103928
|
| |
|
|
|
|
| |
Debug code doesn't use callee saved registers anyway, and the code is simpler this way. Now spillVirtReg always kills, and the isKill parameter is not needed.
llvm-svn: 103927
|
| |
|
|
| |
llvm-svn: 103926
|
| |
|
|
| |
llvm-svn: 103925
|
| |
|
|
|
|
| |
sure to clear the copy field if the redef is not a copy.
llvm-svn: 103922
|
| |
|
|
| |
llvm-svn: 103917
|
| |
|
|
| |
llvm-svn: 103915
|
| |
|
|
|
|
|
|
|
| |
<1xi64> -> i64 to work in MMX registers on hosts where -no-sse
is the default (not mine). The right thing is
to accept this and make i64->f64 conversions go through memory,
but I don't have time right now.
llvm-svn: 103914
|
| |
|
|
|
|
|
| |
(This worked as of about 6 months ago and I didn't track down
exactly what broke it; I think this fix is appropriate.)
llvm-svn: 103911
|
| |
|
|
|
|
| |
of "@" in *.td
llvm-svn: 103903
|
| |
|
|
|
|
| |
Patch by Charles Davis and Steven Watanabe!
llvm-svn: 103902
|
| |
|
|
| |
llvm-svn: 103901
|
| |
|
|
| |
llvm-svn: 103898
|
| |
|
|
|
|
| |
LLVMgold.so both in both the build and install directories.
llvm-svn: 103897
|
| |
|
|
| |
llvm-svn: 103896
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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
|