| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
a new class, MachineInstrIndex, which hides arithmetic details from
most clients. This is a step towards allowing the register allocator
to update/insert code during allocation.
llvm-svn: 81040
|
| |
|
|
| |
llvm-svn: 80997
|
| |
|
|
| |
llvm-svn: 80994
|
| |
|
|
| |
llvm-svn: 80993
|
| |
|
|
| |
llvm-svn: 80976
|
| |
|
|
| |
llvm-svn: 80971
|
| |
|
|
|
|
|
| |
FastISel to recognize this pattern and emit a floating-point
negation using xor.
llvm-svn: 80963
|
| |
|
|
| |
llvm-svn: 80962
|
| |
|
|
|
|
| |
wasn't doing the right thing.
llvm-svn: 80958
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for the complicated case where one register is tied to multiple destinations.
This avoids the extra scan of instruction operands that was introduced by
my recent change. I also pulled some code out into a separate
TryInstructionTransform method, added more comments, and renamed some
variables.
Besides all those changes, this takes care of a FIXME in the code regarding
an assumption about there being a single tied use of a register when
converting to a 3-address form. I'm not aware of cases where that assumption
is violated, but the code now only attempts to transform an instruction,
either by commuting its operands or by converting to a 3-address form,
for the simple case where there is a single pair of tied operands.
llvm-svn: 80945
|
| |
|
|
|
|
| |
swapping the operands if necessary.
llvm-svn: 80940
|
| |
|
|
|
|
|
|
|
| |
avoid reloads by reusing clobbered registers.
This was causing issues in 256.bzip2 when compiled with PIC for
a while (starting at r78217), though the problem has since been masked.
llvm-svn: 80872
|
| |
|
|
| |
llvm-svn: 80798
|
| |
|
|
| |
llvm-svn: 80773
|
| |
|
|
|
|
| |
to find the kill, since we already have the operand.
llvm-svn: 80736
|
| |
|
|
| |
llvm-svn: 80733
|
| |
|
|
| |
llvm-svn: 80731
|
| |
|
|
|
|
| |
least partly unsupported, in X86 encoding at least).
llvm-svn: 80726
|
| |
|
|
| |
llvm-svn: 80717
|
| |
|
|
| |
llvm-svn: 80710
|
| |
|
|
| |
llvm-svn: 80704
|
| |
|
|
| |
llvm-svn: 80702
|
| |
|
|
| |
llvm-svn: 80689
|
| |
|
|
|
|
| |
EmitLabel()
llvm-svn: 80677
|
| |
|
|
|
|
|
|
|
| |
tied to different source registers, the TwoAddressInstructionPass needs to
be smarter. Change it to check before replacing a source register whether
that source register is tied to a different destination register, and if so,
defer handling it until a subsequent iteration.
llvm-svn: 80654
|
| |
|
|
|
|
|
|
|
|
|
| |
makes an eggregious hack somewhat more palatable. Bringing the LSDA forward
and making it a GV available for reference would be even better, but is
beyond the scope of what I'm looking to solve at this point.
Objective C++ code could generate function names that broke the previous
scheme. This fixes that.
llvm-svn: 80649
|
| |
|
|
| |
llvm-svn: 80637
|
| |
|
|
| |
llvm-svn: 80633
|
| |
|
|
| |
llvm-svn: 80631
|
| |
|
|
|
|
| |
them. Move the code to make that change inside the conditional.
llvm-svn: 80630
|
| |
|
|
|
|
|
| |
modify the type and location debug information for these variables to match the
programmer's expectations.
llvm-svn: 80625
|
| |
|
|
| |
llvm-svn: 80621
|
| |
|
|
| |
llvm-svn: 80602
|
| |
|
|
| |
llvm-svn: 80601
|
| |
|
|
|
|
| |
handling on x86-32 linux.
llvm-svn: 80592
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Shared landing pads run into trouble with SJLJ, as the dispatch table is
mapped to call sites, and merging the pads will throw that off. There needs
to be a one-to-one mapping of landing pad exception table entries to invoke
call points.
Detecting the shared pad during lowering of SJLJ info insn't sufficient, as
the dispatch function may still need separate destinations to properly
handle phi-nodes.
llvm-svn: 80530
|
| |
|
|
| |
llvm-svn: 80466
|
| |
|
|
|
|
|
|
|
| |
encodings.
- Make some of the values emitted by the FDEs dependent upon the pointer
size. This is in line with how GCC does things. And it has the benefit of
working for Darwin in 64-bit mode now.
llvm-svn: 80428
|
| |
|
|
|
|
| |
doesn't handle all values of the formatting. Those can be added as needed.
llvm-svn: 80427
|
| |
|
|
|
|
|
|
|
| |
and make the reference pointer size as it should be.
Fixes an abort on a testcase derived from libunwind's personality
test in 64-bit.
llvm-svn: 80414
|
| |
|
|
| |
llvm-svn: 80410
|
| |
|
|
|
|
| |
Use MDNodes to encode debug info in llvm IR.
llvm-svn: 80406
|
| |
|
|
| |
llvm-svn: 80401
|
| |
|
|
| |
llvm-svn: 80307
|
| |
|
|
|
|
| |
tolerant of blocks that end with "unreachable".
llvm-svn: 80270
|
| |
|
|
| |
llvm-svn: 80198
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A include/llvm/ADT/iterator.cmake
U autoconf/configure.ac
--- Reverse-merging r80161 into '.':
U cmake/config-ix.cmake
--- Reverse-merging r80171 into '.':
U Makefile
--- Reverse-merging r80173 into '.':
U configure
U include/llvm/Config/config.h.in
--- Reverse-merging r80180 into '.':
A include/llvm/ADT/iterator.h.in
Despite common miscomceptions, iterator.h is alive and well. It broke the build
bots for several hours. And yet no one bothered to look at them.
Gabor and Doug, please review your changes and make sure that they actually
build before resubmitting them.
llvm-svn: 80197
|
| |
|
|
|
|
|
| |
do extra checking when it succeeds, as those are cases where
CodeGen will be doing particularly interesting CFG modifications.
llvm-svn: 80196
|
| |
|
|
|
|
| |
personality function.
llvm-svn: 80153
|
| |
|
|
|
|
|
| |
don't emit the default one. Explicitly check for the NULL
CIE later.
llvm-svn: 80146
|