| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
to fix PR9900. I will keep it open until sable is able to comment on it.
llvm-svn: 131294
|
|
|
|
|
|
| |
simplified version. <rdar://problem/9298790>
llvm-svn: 131274
|
|
|
|
|
|
| |
rdar://problem/9298790
llvm-svn: 131269
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
by non-CMP expressions. The executable test case (129821) would test
this as well, if we had an "-O0 -disable-arm-fast-isel" LLVM-GCC
tester. Alas, the ARM assembly would be very difficult to check with
FileCheck.
The thumb2-cbnz.ll test is affected; it generates larger code (tst.w
vs. cmp #0), but I believe the new version is correct.
rdar://problem/9298790
llvm-svn: 131261
|
|
|
|
| |
llvm-svn: 131258
|
|
|
|
|
|
| |
s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g
llvm-svn: 131244
|
|
|
|
|
|
| |
test bug and also taught it to update liveins.
llvm-svn: 131241
|
|
|
|
|
|
| |
an attribute DW_AT_APPLE_objc_class_extension.
llvm-svn: 131238
|
|
|
|
|
|
| |
configuration.
llvm-svn: 131235
|
|
|
|
|
|
|
|
|
| |
markers. In some cases a register def is dead on one path, but not on
another.
This is passing Clang self-hosting.
llvm-svn: 131214
|
|
|
|
|
|
| |
DW_LNS_set_prologue_end line table opcode.
llvm-svn: 131194
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
about to be spilled.
This can only happen when two extra snippet registers are included in the spill,
and there is a copy between them. Hoisting the spill creates problems because
the hoist will mark the copy for later dead code elimination, and spilling the
second register will turn the copy into a spill.
<rdar://problem/9420853>
llvm-svn: 131192
|
|
|
|
|
|
|
|
| |
If there is a store after the load node, then there is a chain, which means
that there is another user. Thus, asking hasOneUser would fail. Instead we
ask hasNUsesOfValue on the 'data' value.
llvm-svn: 131183
|
|
|
|
|
|
| |
to provide a reduced testcase.
llvm-svn: 131176
|
|
|
|
|
|
|
|
| |
intrinsic call. This prevents it from being reordered so that it appears
*before* the setjmp intrinsic (thus making it completely useless).
<rdar://problem/9409683>
llvm-svn: 131174
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
at the start of basic blocks to their common predecessor. It's actually quite
common (e.g. about 50 times in JM/lencod) and has shown to be a nice code size
benefit. e.g.
pushq %rax
testl %edi, %edi
jne LBB0_2
## BB#1:
xorb %al, %al
popq %rdx
ret
LBB0_2:
xorb %al, %al
callq _foo
popq %rdx
ret
=>
pushq %rax
xorb %al, %al
testl %edi, %edi
je LBB0_2
## BB#1:
callq _foo
LBB0_2:
popq %rdx
ret
rdar://9145558
llvm-svn: 131172
|
|
|
|
| |
llvm-svn: 131157
|
|
|
|
|
|
| |
rdar://problem/9413587 .
llvm-svn: 131156
|
|
|
|
|
|
|
| |
test case; I've only seen this on a release branch, and I can't get it
to reproduce on trunk. rdar://problem/7662569
llvm-svn: 131152
|
|
|
|
| |
llvm-svn: 131151
|
|
|
|
|
|
| |
DwarfRequiresRelocationForSectionOffset as this is not specific to StmtList.
llvm-svn: 131148
|
|
|
|
|
|
|
|
|
| |
this clang will use .debug_frame in, for example,
clang -g -c -m32 test.c
This matches gcc's behaviour. It looks like .debug_frame is a bit bigger
than .eh_frame, but has the big advantage of not being allocated.
llvm-svn: 131140
|
|
|
|
|
|
|
|
| |
The previous invalidation missed the alias interference caches.
Also add a stats counter for the number of repaired ranges.
llvm-svn: 131133
|
|
|
|
| |
llvm-svn: 131106
|
|
|
|
|
|
| |
Patch by Evan Cheng.
llvm-svn: 131093
|
|
|
|
| |
llvm-svn: 131082
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
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
|
|
|
|
|
|
| |
possibly related to cbnz formation.
llvm-svn: 130977
|
|
|
|
| |
llvm-svn: 130964
|
|
|
|
| |
llvm-svn: 130959
|
|
|
|
| |
llvm-svn: 130955
|
|
|
|
| |
llvm-svn: 130947
|
|
|
|
| |
llvm-svn: 130944
|