| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
just remove them all. Radar 7873207 (working around the root problem of
Radar 7759363).
llvm-svn: 101604
|
| |
|
|
|
|
|
|
| |
register in RegAllocLocal."
This reverts commit 101392. It broke a buildbot.
llvm-svn: 101595
|
| |
|
|
|
|
|
| |
Probably the best way to know that all getOperand() calls have been handled
is to replace that API instead of updating.
llvm-svn: 101579
|
| |
|
|
| |
llvm-svn: 101575
|
| |
|
|
|
|
|
|
| |
in RegAllocLocal.
This makes the local register allocator about 20% faster.
llvm-svn: 101574
|
| |
|
|
|
|
| |
case until -promote-16bit is enabled.
llvm-svn: 101551
|
| |
|
|
|
|
| |
SelectionDAG-specific parts of TargetLowering.
llvm-svn: 101537
|
| |
|
|
| |
llvm-svn: 101532
|
| |
|
|
| |
llvm-svn: 101501
|
| |
|
|
| |
llvm-svn: 101500
|
| |
|
|
| |
llvm-svn: 101480
|
| |
|
|
| |
llvm-svn: 101478
|
| |
|
|
| |
llvm-svn: 101477
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
with a fix for self-hosting
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101465
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
JIT doesn't use the MC back-end asm printer to emit labels that it uses, the
section for the MCSymbol is never set. And thus the MCSymbol for the EH label
isn't marked as "defined". Because of that, TidyLandingPads removes the needed
landing pads from the JIT output. This breaks EH for every JIT program.
This is a work-around for this limitation. We pass in the label locations
map. If the label has a non-zero value, then it was "emitted" by the JIT and
TidyLandingPads shouldn't remove that label.
A nicer solution would be to mark the MCSymbol as "used" by the JIT and not rely
upon the section being set to determine if it's defined or not.
llvm-svn: 101453
|
| |
|
|
|
|
|
|
|
|
| |
requires target specific queries. For example, x86 should promote i16 to i32 when it does not impact load folding.
x86 support is off by default. It can be enabled with -promote-16bit.
Work in progress.
llvm-svn: 101448
|
| |
|
|
| |
llvm-svn: 101443
|
| |
|
|
| |
llvm-svn: 101434
|
| |
|
|
|
|
|
|
|
|
| |
MachineLoopInfo is already available when MachineSinking runs, so the check is
free.
There is no test case because it would require a critical edge into a loop, and
CodeGenPrepare splits those. This check is just to be extra careful.
llvm-svn: 101420
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
with a fix
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101397
|
| |
|
|
| |
llvm-svn: 101392
|
| |
|
|
| |
llvm-svn: 101388
|
| |
|
|
| |
llvm-svn: 101385
|
| |
|
|
| |
llvm-svn: 101376
|
| |
|
|
| |
llvm-svn: 101371
|
| |
|
|
| |
llvm-svn: 101368
|
| |
|
|
|
|
|
|
|
|
| |
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101364
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tokenfactor in between the load/store. This allows us to
optimize test7 into:
_test7: ## @test7
## BB#0: ## %entry
movl (%rdx), %eax
## kill: SIL<def> ESI<kill>
movb %sil, 5(%rdi)
ret
instead of:
_test7: ## @test7
## BB#0: ## %entry
movl 4(%esp), %ecx
movl $-65281, %eax ## imm = 0xFFFFFFFFFFFF00FF
andl 4(%ecx), %eax
movzbl 8(%esp), %edx
shll $8, %edx
addl %eax, %edx
movl 12(%esp), %eax
movl (%eax), %eax
movl %edx, 4(%ecx)
ret
llvm-svn: 101355
|
| |
|
|
|
|
|
|
| |
This doesn't occur much at all, it only seems to formed in the case
when the trunc optimization kicks in due to phase ordering. In that
case it is saves a few bytes on x86-32.
llvm-svn: 101350
|
| |
|
|
|
|
| |
and. This happens with the store->load narrowing stuff.
llvm-svn: 101348
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a load/or/and/store sequence into a narrower store when it is
safe. Daniel tells me that clang will start producing this sort
of thing with bitfields, and this does trigger a few dozen times
on 176.gcc produced by llvm-gcc even now.
This compiles code like CodeGen/X86/2009-05-28-DAGCombineCrash.ll
into:
movl %eax, 36(%rdi)
instead of:
movl $4294967295, %eax ## imm = 0xFFFFFFFF
andq 32(%rdi), %rax
shlq $32, %rcx
addq %rax, %rcx
movq %rcx, 32(%rdi)
and each of the testcases into a single store. Each of them used
to compile into craziness like this:
_test4:
movl $65535, %eax ## imm = 0xFFFF
andl (%rdi), %eax
shll $16, %esi
addl %eax, %esi
movl %esi, (%rdi)
ret
llvm-svn: 101343
|
| |
|
|
| |
llvm-svn: 101342
|
| |
|
|
| |
llvm-svn: 101334
|
| |
|
|
| |
llvm-svn: 101330
|
| |
|
|
| |
llvm-svn: 101325
|
| |
|
|
| |
llvm-svn: 101317
|
| |
|
|
|
|
| |
unit.
llvm-svn: 101315
|
| |
|
|
| |
llvm-svn: 101314
|
| |
|
|
| |
llvm-svn: 101276
|
| |
|
|
| |
llvm-svn: 101275
|
| |
|
|
|
|
| |
a bunch of stuff to support it.
llvm-svn: 101273
|
| |
|
|
| |
llvm-svn: 101272
|
| |
|
|
| |
llvm-svn: 101269
|
| |
|
|
|
|
|
| |
SelectionDAGBuilder. FunctionLoweringInfo isn't an ideal place for
them to live, but it's better than SelectionDAGBuilder for now.
llvm-svn: 101267
|
| |
|
|
| |
llvm-svn: 101266
|
| |
|
|
| |
llvm-svn: 101264
|
| |
|
|
| |
llvm-svn: 101263
|
| |
|
|
|
|
| |
don't need it.
llvm-svn: 101262
|
| |
|
|
|
|
| |
drop the redundant #ifndef NDEBUG.
llvm-svn: 101261
|
| |
|
|
| |
llvm-svn: 101260
|