| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 307675
|
|
|
|
|
|
|
|
| |
Patch by Michael Wu.
Differential Revision: https://reviews.llvm.org/D35104
llvm-svn: 307671
|
|
|
|
| |
llvm-svn: 307582
|
|
|
|
| |
llvm-svn: 307580
|
|
|
|
|
|
| |
This fixes https://llvm.org/PR33718.
llvm-svn: 307566
|
|
|
|
| |
llvm-svn: 307564
|
|
|
|
| |
llvm-svn: 307411
|
|
|
|
| |
llvm-svn: 307395
|
|
|
|
| |
llvm-svn: 307374
|
|
|
|
|
|
|
| |
It was not processing any value. All that it ever did was force
relocations, so name it shouldForceRelocation.
llvm-svn: 306906
|
|
|
|
|
|
|
| |
It applies to leaf functions that are otherwise not required to have
a frame pointer.
llvm-svn: 306888
|
|
|
|
|
|
|
|
| |
The llvm flag "-hexagon-emit-lookup-tables" guards the generation
of lookup table generated from a switch statement.
Differential Revision: https://reviews.llvm.org/D34819
llvm-svn: 306877
|
|
|
|
|
|
|
|
| |
This patch adds a new LLVM flag -hexagon-emit-jt-text which is defaulted to
"false". The value "true" emits the switch generated jump tables in text section.
Differential Revision: https://reviews.llvm.org/D34820
llvm-svn: 306872
|
|
|
|
|
|
|
| |
This reverts commit ae521f4192c3ed0202c047fec993cb59133dd1a0.
Wrong commit message
llvm-svn: 306871
|
|
|
|
|
|
|
|
|
| |
The llvm flag "-hexagon-emit-lookup-tables" guards the generation
of lookup table from a switch statement.
Differential Revision: https://reviews.llvm.org/D34819
llvm-svn: 306869
|
|
|
|
|
|
|
| |
The dead phis are needed for finding correct would-be reaching defs
in register propagation.
llvm-svn: 306690
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The changes are a result of discussion of https://reviews.llvm.org/D33685.
It solves the following problem:
1. We can inform getGEPCost about simplified indices to help it with
calculating the cost. But getGEPCost does not take into account the
context which GEPs are used in.
2. We have getUserCost which can take the context into account but we cannot
inform about simplified indices.
With the changes getUserCost will have access to additional information
as getGEPCost has.
The one parameter getUserCost is also provided.
Differential Revision: https://reviews.llvm.org/D34057
llvm-svn: 306674
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: sanjoy, anna, reames, apilipenko, igor-laevsky, mkuper
Subscribers: jholewinski, arsenm, mzolotukhin, nemanjai, nhaehnle, javed.absar, mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D34531
llvm-svn: 306554
|
|
|
|
| |
llvm-svn: 306458
|
|
|
|
|
|
|
| |
Account for the fact that both, the feeder and the compare can be moved
over instructions that kill registers.
llvm-svn: 306443
|
|
|
|
| |
llvm-svn: 306288
|
|
|
|
| |
llvm-svn: 306202
|
|
|
|
| |
llvm-svn: 306189
|
|
|
|
|
|
|
|
|
|
|
|
| |
processFixupValue is called on every relaxation iteration. applyFixup
is only called once at the very end. applyFixup is then the correct
place to do last minute changes and value checks.
While here, do proper range checks again for fixup_arm_thumb_bl. We
used to do it, but dropped because of thumb2. We now do it again, but
use the thumb2 range.
llvm-svn: 306177
|
|
|
|
|
|
| |
This breaks passing of aligned function arguments.
llvm-svn: 306145
|
|
|
|
|
|
|
| |
It causes an extra pass of the machine verifier to be added to the pass
manager, and causes test/CodeGen/Generic/llc-start-stop.ll to fail.
llvm-svn: 306140
|
|
|
|
| |
llvm-svn: 306124
|
|
|
|
|
|
|
| |
The feeder instruction will be moved to right before the compare, so
the updating code should not be looking for kills past the compare.
llvm-svn: 306059
|
|
|
|
|
|
| |
Remove the previous, manual shuffling of the kill flags.
llvm-svn: 306054
|
|
|
|
| |
llvm-svn: 306012
|
|
|
|
|
|
|
| |
Reserve an extra scavenging stack slot if the offset field in store-
-immediate instructions may overflow.
llvm-svn: 306004
|
|
|
|
| |
llvm-svn: 305968
|
|
|
|
| |
llvm-svn: 305953
|
|
|
|
| |
llvm-svn: 305943
|
|
|
|
|
|
| |
warnings; other minor fixes (NFC).
llvm-svn: 305757
|
|
|
|
|
|
|
|
|
| |
The second part of r305300: when placing the mux at the later location,
make sure that it won't use any register that was killed between the
two original instructions. Remove any such kills and transfer them to
the mux.
llvm-svn: 305553
|
|
|
|
|
|
|
|
|
| |
Store-immediate instructions have a non-extendable offset. Since the
actual offset for a stack object is not known until much later, only
generate these stores when the stack size (at the time of instruction
selection) is small.
llvm-svn: 305305
|
|
|
|
| |
llvm-svn: 305302
|
|
|
|
|
|
|
|
|
|
|
| |
When a mux instruction is created from a pair of complementary conditional
transfers, it can be placed at the location of either the earlier or the
later of the transfers. Since it will use the operands of the original
transfers, putting it in the earlier location may hoist a kill of a source
register that was originally further down. Make sure the kill flag is
removed if the register is still used afterwards.
llvm-svn: 305300
|
|
|
|
|
|
|
| |
The conversion of shifts from right shifts to left shifts may fail.
In such case, the pmpy recognition cannot proceed.
llvm-svn: 305289
|
|
|
|
|
|
|
|
| |
- Add some missing patterns.
- Use C4_cmplte in branch patterns.
- Fix signedness of immediate operand in M2_accii.
llvm-svn: 305085
|
|
|
|
| |
llvm-svn: 305074
|
|
|
|
|
|
|
| |
Remove "false" from the arguments to "addPass" in Hexagon's target pass
config.
llvm-svn: 305015
|
|
|
|
| |
llvm-svn: 305014
|
|
|
|
| |
llvm-svn: 305003
|
|
|
|
| |
llvm-svn: 304937
|
|
|
|
|
|
|
|
|
|
|
|
| |
This creates a new library called BinaryFormat that has all of
the headers from llvm/Support containing structure and layout
definitions for various types of binary formats like dwarf, coff,
elf, etc as well as the code for identifying a file from its
magic.
Differential Revision: https://reviews.llvm.org/D33843
llvm-svn: 304864
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I did this a long time ago with a janky python script, but now
clang-format has built-in support for this. I fed clang-format every
line with a #include and let it re-sort things according to the precise
LLVM rules for include ordering baked into clang-format these days.
I've reverted a number of files where the results of sorting includes
isn't healthy. Either places where we have legacy code relying on
particular include ordering (where possible, I'll fix these separately)
or where we have particular formatting around #include lines that
I didn't want to disturb in this patch.
This patch is *entirely* mechanical. If you get merge conflicts or
anything, just ignore the changes in this patch and run clang-format
over your #include lines in the files.
Sorry for any noise here, but it is important to keep these things
stable. I was seeing an increasing number of patches with irrelevant
re-ordering of #include lines because clang-format was used. This patch
at least isolates that churn, makes it easy to skip when resolving
conflicts, and gets us to a clean baseline (again).
llvm-svn: 304787
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: craig.topper, arsenm, mehdi_amini
Reviewed By: mehdi_amini
Subscribers: mehdi_amini, wdng, nhaehnle, javed.absar, llvm-commits
Differential Revision: https://reviews.llvm.org/D33924
llvm-svn: 304767
|
|
|
|
|
|
|
| |
This allows using this function to test if an instruction can be converted
to a .new form.
llvm-svn: 304549
|