| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
creating a call to a library function.
Update all clients to pass the TLI information around.
Previous draft reviewed by Eli.
llvm-svn: 160733
|
| |
|
|
| |
llvm-svn: 160731
|
| |
|
|
|
|
| |
to pop.
llvm-svn: 160725
|
| |
|
|
|
|
| |
change.
llvm-svn: 160724
|
| |
|
|
|
|
|
|
|
|
| |
of an array element (rather than at the beginning of the element) and extended
into the next element, then the load from the second element was being handled
wrong due to incorrect updating of the notion of which byte to load next. This
fixes PR13442. Thanks to Chris Smowton for reporting the problem, analyzing it
and providing a fix.
llvm-svn: 160711
|
| |
|
|
|
|
|
|
| |
The long branch pass (fixed in r160601) no longer uses the global base register
to compute addresses of branch destinations, so it is not necessary to reserve
a slot on the stack.
llvm-svn: 160703
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
if Condition Is Met instuctions that was not correctly determining the target
instruction.
So for a jne rel32 instruction:
% cat x.s
.byte 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00
% as x.s
it was incorrectly deterining the target:
% otool -q -tv a.out
a.out:
(__TEXT,__text) section
0000000000000000 jne 0xd
and with the fix it gets this correct as:
% otool -q -tv a.out
a.out:
(__TEXT,__text) section
0000000000000000 jne 0xf
rdar://11505997
llvm-svn: 160694
|
| |
|
|
|
|
|
| |
Darwin bootstrap. Testcase exists but isn't fully reduced, I expect to commit
the testcase this evening.
llvm-svn: 160693
|
| |
|
|
|
|
| |
fputc, memchr, memcmp, putchar, puts, strchr, strncmp
llvm-svn: 160690
|
| |
|
|
|
|
|
|
|
| |
are targeting an ELF platform. Only fold gs-relative (and fs-relative) loads
if it is actually sensible to do so for the target platform.
This fixes PR13438.
llvm-svn: 160687
|
| |
|
|
| |
llvm-svn: 160678
|
| |
|
|
| |
llvm-svn: 160676
|
| |
|
|
| |
llvm-svn: 160668
|
| |
|
|
|
|
|
|
|
| |
might be deliberate "one time" leaks, so that leak checkers can find them.
This is a reapply of r160602 with the fix that this time I'm committing the
code I thought I was committing last time; the I->eraseFromParent() goes
*after* the break out of the loop.
llvm-svn: 160664
|
| |
|
|
|
|
| |
release builds from crashing if code uses an intrinsic with an illegal type.
llvm-svn: 160661
|
| |
|
|
|
|
|
|
| |
ExecutionEngine/test-fp.ll.
Patch by Petar Jovanovic.
llvm-svn: 160653
|
| |
|
|
|
|
|
|
| |
Hello world will compile and execute with this patch.
Patch by Reed Kotler.
llvm-svn: 160651
|
| |
|
|
| |
llvm-svn: 160643
|
| |
|
|
|
|
| |
rdar://11931823.
llvm-svn: 160637
|
| |
|
|
| |
llvm-svn: 160636
|
| |
|
|
| |
llvm-svn: 160632
|
| |
|
|
| |
llvm-svn: 160631
|
| |
|
|
| |
llvm-svn: 160629
|
| |
|
|
| |
llvm-svn: 160621
|
| |
|
|
|
|
|
|
|
|
| |
that do not support it (X86 does not lower select_cc).
PR: 13428
Together with Michael Kuperstein <michael.m.kuperstein@intel.com>
llvm-svn: 160619
|
| |
|
|
| |
llvm-svn: 160617
|
| |
|
|
|
|
| |
release builds from crashing if code uses an intrinsic with an illegal type. For instance 256-bit AVX intrinsics without having AVX enabled.
llvm-svn: 160616
|
| |
|
|
|
|
| |
moved earlier. This fixes some layering issues.
llvm-svn: 160611
|
| |
|
|
|
|
| |
In current implementation, JIT should run only on host.
llvm-svn: 160610
|
| |
|
|
| |
llvm-svn: 160603
|
| |
|
|
|
|
|
|
| |
r160529 that was subsequently reverted. The fix was to not call
GV->eraseFromParent() right before the caller does the same. The existing
testcases already caught this bug if run under valgrind.
llvm-svn: 160602
|
| |
|
|
|
|
|
| |
This pass no longer requires that the global pointer value be saved to the
stack or register since it uses bal instruction to compute branch distance.
llvm-svn: 160601
|
| |
|
|
| |
llvm-svn: 160599
|
| |
|
|
| |
llvm-svn: 160598
|
| |
|
|
|
|
| |
Test case will be added later when long branch patch is checked in.
llvm-svn: 160597
|
| |
|
|
|
|
|
|
| |
discussed 2 months ago or so.
Make sure we do not emit index computations with NSW flags so that we dont get an undef value if the GEP overflows
llvm-svn: 160589
|
| |
|
|
|
|
|
|
| |
belongs. I dunno why in the world I dropped it in the Scalar folder in the first place.
No functionality change.
llvm-svn: 160587
|
| |
|
|
|
|
| |
clang's -Wunused-private-field.
llvm-svn: 160583
|
| |
|
|
|
|
|
|
|
|
| |
LiveRangeEdit::foldAsLoad() can eliminate a register by folding a load
into its only use. Only do that when the load is safe to move, and it
won't extend any live ranges.
This fixes PR13414.
llvm-svn: 160575
|
| |
|
|
|
|
|
|
|
|
|
| |
CI's name, and then used the StringRef pointing at its old name. I'm
fixing it by storing the name in a std::string, and hoisting the
renaming logic to happen always. This is nicer anyways as it will allow
the upgraded IR to have the same names as the input IR in more cases.
Another bug found by AddressSanitizer. Woot.
llvm-svn: 160572
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PHIElimination splits critical edges when it predicts it can resolve
interference and eliminate copies. It doesn't split the edge if the
interference wouldn't be resolved anyway because the phi-use register is
live in the critical edge anyway.
Teach PHIElimination to split loop exiting edges with interference, even
if it wouldn't resolve the interference. This removes the necessary
copies from the loop, which is still an improvement from injecting the
copies into the loop.
The test case demonstrates the improvement. Before:
LBB0_1:
cmpb $0, (%rdx)
leaq 1(%rdx), %rdx
movl %esi, %eax
je LBB0_1
After:
LBB0_1:
cmpb $0, (%rdx)
leaq 1(%rdx), %rdx
je LBB0_1
movl %esi, %eax
llvm-svn: 160571
|
| |
|
|
| |
llvm-svn: 160567
|
| |
|
|
|
|
| |
color.
llvm-svn: 160559
|
| |
|
|
| |
llvm-svn: 160558
|
| |
|
|
| |
llvm-svn: 160557
|
| |
|
|
|
|
|
|
| |
GetBestDestForJumpOnUndef() assumes there is at least 1 successor, which isn't
true if the block ends in an indirect branch with no successors. Fix this by
bailing out earlier in this case.
llvm-svn: 160546
|
| |
|
|
|
|
| |
idea: insert an empty InlineAsm). Change the order in which the new BBs are inserted: the slow path BB is insert between old BBs, the crash BB is inserted at the end. Don't create an empty BB (introduced by recent commits). Update the test. The experimental code that does manual crash callback merge will most likely be deleted later.
llvm-svn: 160544
|
| |
|
|
|
|
| |
instructions. Needed because super reg defs and kills are added as implicit operands on 128-bit instructions. Fixes PR13349. Patch by Jose Fonseca.
llvm-svn: 160543
|
| |
|
|
| |
llvm-svn: 160532
|
| |
|
|
|
|
| |
which has no def
llvm-svn: 160531
|