| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
correct the testcase for valid assembly.
Needs more tests.
llvm-svn: 107860
|
| |
|
|
| |
llvm-svn: 107856
|
| |
|
|
|
|
|
|
|
| |
This target hook is intended to replace copyRegToReg entirely, but for now it
calls copyRegToReg.
Any remaining calls to copyRegToReg wil be replaced by COPY instructions.
llvm-svn: 107854
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
simplest case when the following conditions are met:
1. The arguments are f32.
2. The arguments are loads and they have no uses other than the comparison.
3. The comparison code is EQ or NE.
e.g.
vldr.32 s0, [r1]
vldr.32 s1, [r0]
vcmpe.f32 s1, s0
vmrs apsr_nzcv, fpscr
beq LBB0_2
=>
ldr r1, [r1]
ldr r0, [r0]
cmp r0, r1
beq LBB0_2
More complicated cases will be implemented in subsequent patches.
llvm-svn: 107852
|
| |
|
|
|
|
|
|
|
| |
Add explicit testcases for tail calls within the same module.
Duplicate some code to humor those who think .w doesn't apply on ARM.
Leave this disabled on Thumb1, and add some comments explaining why it's hard
and won't gain much.
llvm-svn: 107851
|
| |
|
|
|
|
| |
Debug info intrinsics win for now.
llvm-svn: 107850
|
| |
|
|
|
|
|
|
| |
(if there are any) and use the one which remains available for the longest
rather than just using the first one. This should help enable better re-use
of the loaded frame index values. rdar://7318760
llvm-svn: 107847
|
| |
|
|
|
|
| |
address spaces when SRoA'ing memcpy's.
llvm-svn: 107846
|
| |
|
|
|
|
|
| |
prefer to materialize as local constants. This fixes the clang
bootstrap abort.
llvm-svn: 107840
|
| |
|
|
| |
llvm-svn: 107839
|
| |
|
|
|
|
|
| |
PR7399. The asm parser already handles this. This is of dubious
utility (see the PR) but the asmprinter was clearly broken here.
llvm-svn: 107834
|
| |
|
|
| |
llvm-svn: 107832
|
| |
|
|
| |
llvm-svn: 107831
|
| |
|
|
|
|
|
|
|
| |
address calculation instructions leading up to a jump table when we're trying
to convert them into a TB[H] instruction in Thumb2. This realistically
shouldn't happen much, if at all, for well formed inputs, but it's more correct
to handle it. rdar://7387682
llvm-svn: 107830
|
| |
|
|
| |
llvm-svn: 107826
|
| |
|
|
|
|
|
| |
in the integrated assembler. Still some discussion to be
done.
llvm-svn: 107825
|
| |
|
|
| |
llvm-svn: 107823
|
| |
|
|
|
|
| |
Keep track of abstract subprogram DIEs.
llvm-svn: 107822
|
| |
|
|
|
|
| |
for consistency sake.
llvm-svn: 107820
|
| |
|
|
| |
llvm-svn: 107818
|
| |
|
|
|
|
| |
didn't create a new block, don't reset the insert position.
llvm-svn: 107813
|
| |
|
|
| |
llvm-svn: 107811
|
| |
|
|
| |
llvm-svn: 107810
|
| |
|
|
|
|
| |
This fixes PR7540.
llvm-svn: 107809
|
| |
|
|
| |
llvm-svn: 107807
|
| |
|
|
|
|
| |
a separate DCE pass over MachineInstrs.
llvm-svn: 107804
|
| |
|
|
|
|
|
| |
a bunch of stuff, to allow the target-independent calling convention
logic to be employed.
llvm-svn: 107800
|
| |
|
|
| |
llvm-svn: 107798
|
| |
|
|
|
|
|
| |
position when emitting multiple blocks when executing a custom
inserter.
llvm-svn: 107797
|
| |
|
|
| |
llvm-svn: 107796
|
| |
|
|
| |
llvm-svn: 107795
|
| |
|
|
|
|
|
|
| |
around everywhere, and also give it an InsertPt member, to enable isel
to operate at an arbitrary position within a block, rather than just
appending to a block.
llvm-svn: 107791
|
| |
|
|
|
|
|
|
|
| |
instance, rather than pointers to all of FunctionLoweringInfo's
members.
This eliminates an NDEBUG ABI sensitivity.
llvm-svn: 107789
|
| |
|
|
|
|
| |
allow target-specific fast-isel code to make use of it directly.
llvm-svn: 107787
|
| |
|
|
|
|
| |
code can do calling-convention queries. This obviates OutputArgReg.
llvm-svn: 107786
|
| |
|
|
| |
llvm-svn: 107785
|
| |
|
|
| |
llvm-svn: 107781
|
| |
|
|
| |
llvm-svn: 107780
|
| |
|
|
| |
llvm-svn: 107778
|
| |
|
|
| |
llvm-svn: 107777
|
| |
|
|
|
|
|
|
|
|
|
| |
interface needs implementations to be consistent, so any code which
wants to support different semantics must use a different interface.
It's not currently worthwhile to add a new interface for this new
concept.
Document that AliasAnalysis doesn't support cross-function queries.
llvm-svn: 107776
|
| |
|
|
| |
llvm-svn: 107767
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
builds to "Release". The default build is unchanged (optimization on,
assertions on), however it is now called Release+Asserts. The intent
is that future LLVM releases released via llvm.org will be Release builds
in the new sense, i.e. will have assertions disabled (currently they have
assertions enabled, for a more than 20% slowdown). This will bring them
in line with MacOS releases, which ship with assertions disabled. It also
means that "Release" now means the same things in make and cmake builds:
cmake already disables assertions for "Release" builds AFAICS.
llvm-svn: 107758
|
| |
|
|
| |
llvm-svn: 107752
|
| |
|
|
| |
llvm-svn: 107750
|
| |
|
|
|
|
| |
more appropriate sections. No functionality changes
llvm-svn: 107749
|
| |
|
|
| |
llvm-svn: 107747
|
| |
|
|
| |
llvm-svn: 107746
|
| |
|
|
|
|
| |
Buildbot breakage.
llvm-svn: 107744
|
| |
|
|
| |
llvm-svn: 107743
|