| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
lane) for size 32
llvm-svn: 131085
|
| |
|
|
| |
llvm-svn: 131082
|
| |
|
|
| |
llvm-svn: 131078
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It can happen that a live debug variable is the last use of a sub-register, and
the register allocator will pick a larger register class for the virtual
register. If the allocated register doesn't support the sub-register index,
just use %noreg for the debug variables instead of asserting.
In PR9872, a debug variable ends up in the sub_8bit_hi part of a GR32_ABCD
register. The register is split and one part is inflated to GR32 and assigned
%ESI because there are no more normal uses of sub_8bit_hi.
Since %ESI doesn't have that sub-register, substPhysReg asserted. Now it will
simply insert a %noreg instead, and the debug variable will be marked
unavailable in that range.
We don't currently have a way of saying: !"value" is in bits 8-15 of %ESI, I
don't know if DWARF even supports that.
llvm-svn: 131073
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"b + ((a < b) ? 1 : 0)" compiles into
cmpl %esi, %edi
adcl $0, %esi
instead of
cmpl %esi, %edi
sbbl %eax, %eax
andl $1, %eax
addl %esi, %eax
This saves a register, a false dependency on %eax
(Intel's CPUs still don't ignore it) and it's shorter.
llvm-svn: 131070
|
| |
|
|
|
|
|
| |
the smaller encoding and this cuts 270336 bytes from a release version of
clang and 1246272 bytes from a debug build.
llvm-svn: 131067
|
| |
|
|
|
|
|
| |
Tablegen will invent its own names for these indexes, and the register file is a
bit simpler.
llvm-svn: 131059
|
| |
|
|
|
|
|
| |
often expressed as "x >= y ? x : y", there is a good chance we can extract
the existing "x >= y" from it and use that as a replacement for "max(x,y)==x".
llvm-svn: 131049
|
| |
|
|
|
|
| |
Patch by Stephen Hines.
llvm-svn: 131045
|
| |
|
|
|
|
| |
Please ensure the build is clean and tests are passing when recommitting.
llvm-svn: 131044
|
| |
|
|
| |
llvm-svn: 131031
|
| |
|
|
|
|
| |
Forgot to `svn rm` these in revisions 131025 / 131029.
llvm-svn: 131030
|
| |
|
|
|
|
| |
From revision 131025.
llvm-svn: 131029
|
| |
|
|
|
|
|
| |
2. Remove unused function.
3. Correct indentation.
llvm-svn: 131028
|
| |
|
|
|
|
|
| |
As an ExecutionEngine class function, its definition
really belongs in ExecutionEngine.cpp, not JIT.cpp.
llvm-svn: 131027
|
| |
|
|
|
|
|
|
| |
In particular, into EngineBuilder. This should only impact
the private API between the EE and EB classes, not external
clients, since JITCtor and MCJITCtor are both protected members.
llvm-svn: 131026
|
| |
|
|
|
|
|
| |
This prepares for making JITCtor/MCJITCtor take a
TargetMachine* directly from clients like EngineBuilder.
llvm-svn: 131025
|
| |
|
|
|
|
|
| |
This can't be just an assertion, users can always write impossible inline
assembly. Such an assembly statement should be included in the error message.
llvm-svn: 131024
|
| |
|
|
| |
llvm-svn: 131022
|
| |
|
|
|
|
|
| |
assert in the bitcode writer. No change needed because the ValueEnumerator holds
a whole-module numbering anyhow. Fixes PR9857!
llvm-svn: 131016
|
| |
|
|
| |
llvm-svn: 131015
|
| |
|
|
|
|
| |
functionality change.
llvm-svn: 131012
|
| |
|
|
| |
llvm-svn: 131008
|
| |
|
|
|
|
|
|
| |
safely erased.
This should unbreak dragonegg-i386-linux and build-self-4-mingw32.
llvm-svn: 131007
|
| |
|
|
| |
llvm-svn: 131001
|
| |
|
|
|
|
|
|
|
|
|
|
| |
After a virtual register is split, update any debug user variables that resided
in the old register. This ensures that the LiveDebugVariables are still correct
after register allocation.
This may create DBG_VALUE instructions that place a user variable in a register
in parts of the function and in a stack slot in other parts. DwarfDebug
currently doesn't support that.
llvm-svn: 130998
|
| |
|
|
| |
llvm-svn: 130997
|
| |
|
|
| |
llvm-svn: 130996
|
| |
|
|
|
|
|
|
|
|
|
| |
The post-ra scheduler was explicitly updating the depth of a node's
successors after scheduling it, regardless of whether the successor
was ready. This is quadratic for DAGs with transitively redundant
edges. I simply removed the useless update of depth, which is lazilly
computed later.
Fixes <rdar://problem/9044332> compiler takes way too long to build TextInput.
llvm-svn: 130992
|
| |
|
|
|
|
| |
DwarfDebug.cpp to DwarfCompileUnit.cpp
llvm-svn: 130991
|
| |
|
|
| |
llvm-svn: 130989
|
| |
|
|
| |
llvm-svn: 130988
|
| |
|
|
| |
llvm-svn: 130987
|
| |
|
|
| |
llvm-svn: 130985
|
| |
|
|
| |
llvm-svn: 130984
|
| |
|
|
|
|
| |
Patch by Wei-Ren Chen
llvm-svn: 130980
|
| |
|
|
|
|
|
| |
return the pointer being dereferenced, it returns the pointee, but a call
might return the pointer itself.
llvm-svn: 130979
|
| |
|
|
|
|
| |
possibly related to cbnz formation.
llvm-svn: 130977
|
| |
|
|
| |
llvm-svn: 130967
|
| |
|
|
| |
llvm-svn: 130964
|
| |
|
|
| |
llvm-svn: 130959
|
| |
|
|
| |
llvm-svn: 130957
|
| |
|
|
| |
llvm-svn: 130955
|
| |
|
|
|
|
| |
side of the icmp is an exact shift.
llvm-svn: 130954
|
| |
|
|
| |
llvm-svn: 130951
|
| |
|
|
| |
llvm-svn: 130947
|
| |
|
|
| |
llvm-svn: 130944
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
BuildSchedGraph was quadratic in the number of calls in the basic
block. After this fix, it keeps only a single call at the top of the
DefList so compile time doesn't blow up on large blocks. This reduces
postRA sched time on an external test case from 81s to 0.3s. Although
r130800 (reduced ARM register alias defs) also partially fixes the
issue by reducing the constant overhead of checking call interference
by an order of magnitude.
Fixes <rdar://problem/7662664> very poor compile time with post RA scheduling.
llvm-svn: 130943
|
| |
|
|
| |
llvm-svn: 130942
|
| |
|
|
|
|
|
| |
I tested both gdb on a bootstrapped clang and and the gdb testsuite on OS X (snow leopard)
and both are happy using __eh_frame.
llvm-svn: 130937
|