| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
instead of inlining its body.
llvm-svn: 46062
|
| |
|
|
|
|
|
|
|
| |
into the ANY_EXTEND/ZERO_EXTEND/SIGN_EXTEND code to simplify it.
Unmerge the code for FP_ROUND and FP_EXTEND from each other to
make each one simpler.
llvm-svn: 46061
|
| |
|
|
|
|
|
| |
a public SDOperand::reachesChainWithoutSideEffects method. No
functionality change.
llvm-svn: 46050
|
| |
|
|
|
|
|
|
|
| |
ShortenEHDataFor64Bits as a not-very-accurate
abstraction to cover all the changes in DwarfWriter.
Some cosmetic changes to Darwin assembly code for
gcc testsuite compatibility.
llvm-svn: 46029
|
| |
|
|
|
|
| |
executed as frequently in performance sensitive code.
llvm-svn: 46027
|
| |
|
|
|
|
|
| |
it's a function pointer) not MVT::Other. This fixes builtin_trap
lowering on ppc, alpha, ia64
llvm-svn: 46018
|
| |
|
|
|
|
| |
MachineRegisterInfo instead.
llvm-svn: 46016
|
| |
|
|
| |
llvm-svn: 46014
|
| |
|
|
| |
llvm-svn: 46002
|
| |
|
|
|
|
| |
as well as PPC codegen
llvm-svn: 46001
|
| |
|
|
| |
llvm-svn: 45995
|
| |
|
|
| |
llvm-svn: 45972
|
| |
|
|
| |
llvm-svn: 45971
|
| |
|
|
|
|
| |
a pointer to a struct.
llvm-svn: 45939
|
| |
|
|
|
|
|
|
|
| |
has no stores between the load and the end of block. This works
great and sinks hundreds of stores, but we can't turn it on because
machineinstrs don't have volatility information and we don't want to
sink volatile stores :(
llvm-svn: 45894
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
both work right according to the new flags.
This removes the TII::isReallySideEffectFree predicate, and adds
TII::isInvariantLoad.
It removes NeverHasSideEffects+MayHaveSideEffects and adds
UnmodeledSideEffects as machine instr flags. Now the clients
can decide everything they need.
I think isRematerializable can be implemented in terms of the
flags we have now, though I will let others tackle that.
llvm-svn: 45843
|
| |
|
|
| |
llvm-svn: 45841
|
| |
|
|
|
|
|
|
| |
Likewise fix up a bunch of other libcalls. While
there I remove NEG_F32 and NEG_F64 since they are
not used anywhere. This fixes 9 Ada ACATS failures.
llvm-svn: 45833
|
| |
|
|
| |
llvm-svn: 45831
|
| |
|
|
| |
llvm-svn: 45830
|
| |
|
|
| |
llvm-svn: 45815
|
| |
|
|
|
|
|
| |
because assembler/linker can't cope with weak absolutes.
PR 1880.
llvm-svn: 45811
|
| |
|
|
|
|
|
|
| |
equivalent API from
MachineRegisterInfo. Once all clients are switched over, the former will be going away.
llvm-svn: 45805
|
| |
|
|
|
|
|
|
| |
rename and when to insert
copies is made.
llvm-svn: 45799
|
| |
|
|
|
|
| |
information.
llvm-svn: 45797
|
| |
|
|
|
|
| |
the block.
llvm-svn: 45791
|
| |
|
|
| |
llvm-svn: 45787
|
| |
|
|
|
|
|
|
| |
internal structures. There's
still more work to do on this front.
llvm-svn: 45783
|
| |
|
|
| |
llvm-svn: 45775
|
| |
|
|
| |
llvm-svn: 45774
|
| |
|
|
| |
llvm-svn: 45773
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
void test(long long *P) { *P ^= 1; }
into just:
_test:
movl 4(%esp), %eax
xorl $1, (%eax)
ret
instead of code like this:
_test:
movl 4(%esp), %ecx
xorl $1, (%ecx)
movl 4(%ecx), %edx
movl %edx, 4(%ecx)
ret
llvm-svn: 45762
|
| |
|
|
| |
llvm-svn: 45759
|
| |
|
|
| |
llvm-svn: 45738
|
| |
|
|
| |
llvm-svn: 45719
|
| |
|
|
| |
llvm-svn: 45718
|
| |
|
|
| |
llvm-svn: 45700
|
| |
|
|
| |
llvm-svn: 45697
|
| |
|
|
|
|
|
| |
Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.
llvm-svn: 45695
|
| |
|
|
| |
llvm-svn: 45693
|
| |
|
|
|
|
|
|
| |
all clients over to using predicates instead of these flags directly.
These are now private values which are only to be used to statically
initialize the tables.
llvm-svn: 45692
|
| |
|
|
|
|
|
| |
flags that can be set. Add predicates for the ones lacking it, and switch
some clients over to using the predicates instead of Flags directly.
llvm-svn: 45690
|
| |
|
|
| |
llvm-svn: 45689
|
| |
|
|
|
|
|
| |
Evan, please review the comments I added to getNumDefs to make sure
that they are accurate, thx.
llvm-svn: 45687
|
| |
|
|
| |
llvm-svn: 45680
|
| |
|
|
|
|
| |
into TargetInstrDescriptor from TargetInstrInfo.
llvm-svn: 45678
|
| |
|
|
|
|
|
| |
over to using them, instead of diddling Flags directly. Change the
various flags from const variables to enums.
llvm-svn: 45677
|
| |
|
|
|
|
|
| |
providing a misleading facility. It's used once in the MIPS backend
and hardcoded as "\t.globl\t" everywhere else.
llvm-svn: 45676
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that it is cheap and efficient to get.
Move a variety of predicates from TargetInstrInfo into
TargetInstrDescriptor, which makes it much easier to query a predicate
when you don't have TII around. Now you can use MI->getDesc()->isBranch()
instead of going through TII, and this is much more efficient anyway. Not
all of the predicates have been moved over yet.
Update old code that used MI->getInstrDescriptor()->Flags to use the
new predicates in many places.
llvm-svn: 45674
|
| |
|
|
| |
llvm-svn: 45673
|