|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| | - Fix the insertion point, which occasionally could have been incorrect.
- Avoid creating multiple bitsplits with the same operands, if an old one
  could be reused.
llvm-svn: 297414 | 
| | 
| 
| 
| 
| 
| 
| 
| | When extracting a bitfield from the high register in a register pair,
the final offset should be relative to the high register (for 32-bit
extracts).
llvm-svn: 297288 | 
| | 
| 
| 
| | llvm-svn: 297240 | 
| | 
| 
| 
| | llvm-svn: 297239 | 
| | 
| 
| 
| | llvm-svn: 297141 | 
| | 
| 
| 
| | llvm-svn: 296537 | 
| | 
| 
| 
| | llvm-svn: 294621 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | graph_children, inverse_graph_nodes, inverse_graph_children).
Summary:
Convert all obvious node_begin/node_end and child_begin/child_end
pairs to range based for.
Sending for review in case someone has a good idea how to make
graph_children able to be inferred. It looks like it would require
changing GraphTraits to be two argument or something. I presume
inference does not happen because it would have to check every
GraphTraits in the world to see if the noderef types matched.
Note: This change was 3-staged with clang as well, which uses
Dominators/etc from LLVM.
Reviewers: chandlerc, tstellarAMD, dblaikie, rsmith
Subscribers: arsenm, llvm-commits, nhaehnle
Differential Revision: https://reviews.llvm.org/D29767
llvm-svn: 294620 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Summary:
The LLVM coding standards recommend "using" values that are only
needed by asserts:
http://llvm.org/docs/CodingStandards.html#assert-liberally
Without this change, LLVM cannot bootstrap with -Werror as the second
stage fails with this new warning:
https://reviews.llvm.org/rL291905
See also the previous fixes:
https://reviews.llvm.org/rL291916
https://reviews.llvm.org/rL291939
https://reviews.llvm.org/rL291940
https://reviews.llvm.org/rL291941
Reviewers: rsmith
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D28695
llvm-svn: 291957 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Rename from addOperand to just add, to match the other method that has been
added to MachineInstrBuilder for adding more than just 1 operand.
See https://reviews.llvm.org/D28057 for the whole discussion.
Differential Revision: https://reviews.llvm.org/D28556
llvm-svn: 291891 | 
| | 
| 
| 
| 
| 
| | other minor fixes (NFC).
llvm-svn: 289604 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | For pairs of 32-bit registers: isub_lo, isub_hi.
For pairs of vector registers: vsub_lo, vsub_hi.
Add generic subreg indices: ps_sub_lo, ps_sub_hi, and a function
  HexagonRegisterInfo::getHexagonSubRegIndex(RegClass, GenericSubreg)
that returns the appropriate subreg index for RegClass.
llvm-svn: 286377 | 
| | 
| 
| 
| 
| 
| | Doing so will result in the two-address pass generating incorrect code.
llvm-svn: 283463 | 
| | 
| 
| 
| | llvm-svn: 283004 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | ALIGNA          PS_aligna
ALLOCA          PS_alloca
TFR_FI          PS_fi
TFR_FIA         PS_fia
TFR_PdFalse     PS_false
TFR_PdTrue      PS_true
VMULW           PS_vmulw
VMULW_ACC       PS_vmulw_acc
llvm-svn: 278832 | 
| | 
| 
| 
| 
| 
| | No functionality change is intended.
llvm-svn: 278443 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | If the result of the find is only used to compare against end(), just
use is_contained instead.
No functionality change is intended.
llvm-svn: 278433 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Floating point instructions use general purpose registers, so the few
instructions that can put floating point immediates into registers are,
in fact, integer instruction. Use them explicitly instead of having
pseudo-instructions specifically for dealing with floating point values.
Simplify the constant loading instructions (from sdata) to have only two:
one for 32-bit values and one for 64-bit values: CONST32 and CONST64.
llvm-svn: 278244 | 
| | 
| 
| 
| | llvm-svn: 277740 | 
| | 
| 
| 
| | llvm-svn: 277626 | 
| | 
| 
| 
| | llvm-svn: 277528 | 
| | 
| 
| 
| | llvm-svn: 277284 | 
| | 
| 
| 
| | llvm-svn: 276793 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Consider this case:
  vreg1 = A2_zxth vreg0   (1)
  ...
  vreg2 = A2_zxth vreg1   (2)
Redundant instruction elimination could delete the instruction (1)
because the user (2) only cares about the low 16 bits. Then it could
delete (2) because the input is already zero-extended. The problem
is that the properties allowing each individual instruction to be
deleted depend on the existence of the other instruction, so either
one can be deleted, but not both.
The existing check for this situation in RIE was insufficient. The
fix is to update all dependent cells when an instruction is removed
(replaced via COPY) in RIE.
llvm-svn: 276792 | 
| | 
| 
| 
| 
| 
| 
| | Change the bit simplifier to generate REG_SEQUENCE instructions in
addition to COPY, which will handle cases of word insert/extract.
llvm-svn: 276787 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Avoid implicit iterator conversions from MachineInstrBundleIterator to
MachineInstr* in the Hexagon backend, mostly by preferring MachineInstr&
over MachineInstr* and switching to range-based for loops.
There's a long tail of API cleanup here, but I'm planning to leave the
rest to the Hexagon maintainers.  HexagonInstrInfo defines many of its
own predicates, and most of them still take MachineInstr*.  Some of
those actually check for nullptr, so I didn't feel comfortable changing
them to MachineInstr& en masse.
llvm-svn: 275142 | 
| | 
| 
| 
| 
| 
| | Found by gcc 6.
llvm-svn: 273322 | 
| | 
| 
| 
| 
| 
| | No functionality change intended.
llvm-svn: 272516 | 
| | 
| 
| 
| 
| 
| | Differential Revision: http://reviews.llvm.org/D19509
llvm-svn: 267593 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Removed some unused headers, replaced some headers with forward class declarations.
Found using simple scripts like this one:
clear && ack --cpp -l '#include "llvm/ADT/IndexedMap.h"' | xargs grep -L 'IndexedMap[<]' | xargs grep -n --color=auto 'IndexedMap'
Patch by Eugene Kosov <claprix@yandex.ru>
Differential Revision: http://reviews.llvm.org/D19219
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266595 | 
| | 
| 
| 
| | llvm-svn: 257815 | 
| | 
| 
| 
| | llvm-svn: 257811 | 
| | 
| 
| 
| | llvm-svn: 257606 | 
|  | Analyze bit patterns of operands and values of instructions to perform
various simplifications, dead/redundant code elimination, etc.
llvm-svn: 250868 |