| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Reorder CombineTo Calls to prevent potential use of deleted node.
Fixes PR32372.
Reviewers: jnspaulsson, RKSimon, uweigand, jonpa
Reviewed By: jonpa
Subscribers: jonpa, llvm-commits
Differential Revision: https://reviews.llvm.org/D31346
llvm-svn: 298920
 | 
| | 
| 
| 
|  | 
llvm-svn: 298918
 | 
| | 
| 
| 
|  | 
llvm-svn: 298917
 | 
| | 
| 
| 
|  | 
llvm-svn: 298916
 | 
| | 
| 
| 
| 
| 
|  | 
Split off matchVectorShuffleAsBlend from lowerVectorShuffleAsBlend for reuse in combining.
llvm-svn: 298914
 | 
| | 
| 
| 
|  | 
llvm-svn: 298911
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
shuffle combines.
Copy isn't necessary after the matchVectorShuffleWithUNPCK refactor and undef value will make some future undef/zero handling easier.
llvm-svn: 298910
 | 
| | 
| 
| 
|  | 
llvm-svn: 298909
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Summary:
Similar to the ARM target in https://reviews.llvm.org/rL298380, this
patch adds identical infrastructure for disabling negative immediate
conversions, and converts the existing aliases to the new infrastucture.
Reviewers: rengolin, javed.absar, olista01, SjoerdMeijer, samparker
Reviewed By: samparker
Subscribers: samparker, aemerson, llvm-commits
Differential Revision: https://reviews.llvm.org/D31243
llvm-svn: 298908
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Summary:
    G_LOAD/G_STORE, add alternative RegisterBank mapping.
    For G_LOAD, Fast and Greedy mode choose the same RegisterBank mapping (GprRegBank ) for the G_GLOAD + G_FADD , can't get rid of cross register bank copy GprRegBank->VecRegBank.
    Reviewers: zvi, rovka, qcolombet, ab
    Reviewed By: zvi
    Subscribers: llvm-commits, dberris, kristof.beyls, eladcohen, guyblank
    Differential Revision: https://reviews.llvm.org/D30979
llvm-svn: 298907
 | 
| | 
| 
| 
| 
| 
|  | 
operand. NFCI
llvm-svn: 298906
 | 
| | 
| 
| 
|  | 
llvm-svn: 298904
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Depends on rL298896: MachineScheduler/ScheduleDAG: Add support for GetSubGraph
Patch by Axel Davy (axel.davy@normalesup.org)
Differential revision: https://reviews.llvm.org/D30152
llvm-svn: 298902
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Summary:
Dont emit mapping symbols for sections that contain only data.
Patched by Shankar Easwaran <shankare@codeaurora.org>
Reviewers: rengolin, peter.smith, weimingz, kparzysz, t.p.northover
Reviewed By: t.p.northover
Subscribers: t.p.northover, llvm-commits
Differential Revision: https://reviews.llvm.org/D30724
llvm-svn: 298901
 | 
| | 
| 
| 
| 
| 
|  | 
previous line. NFC
llvm-svn: 298900
 | 
| | 
| 
| 
|  | 
llvm-svn: 298899
 | 
| | 
| 
| 
| 
| 
|  | 
the tc functions. NFCI
llvm-svn: 298898
 | 
| | 
| 
| 
| 
| 
|  | 
APInt tc functions. This is more consistent with the rest of the codebase. NFC
llvm-svn: 298897
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Patch by Axel Davy (axel.davy@normalesup.org)
Differential revision: https://reviews.llvm.org/D30626
llvm-svn: 298896
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
dumpMachineInstrRangeWithSlotIndex.
Summary:
Add missing check routine for dumpMachineInstrRangeWithSlotIndex including LLVM_DUMP_METHOD.
Reviewers: bkramer
Differential revision: https://reviews.llvm.org/D30367
llvm-svn: 298895
 | 
| | 
| 
| 
|  | 
llvm-svn: 298894
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Speculative revert. Some libfuzzer tests are affected.
This reverts commit r298731.
llvm-svn: 298890
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Speculative revert, some libfuzzer tests are affected.
This reverts commit r298756.
llvm-svn: 298889
 | 
| | 
| 
| 
|  | 
llvm-svn: 298888
 | 
| | 
| 
| 
|  | 
llvm-svn: 298887
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
This test is now passing on Darwin.
See rdar://problem/31282257.
llvm-svn: 298886
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This patch enables schedulers to specify instructions that 
cannot be issued with any other instructions.
It also fixes BeginGroup/EndGroup.
Reviewed by: Andrew Trick
Differential Revision: https://reviews.llvm.org/D30744
llvm-svn: 298885
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
rebase entry errors and test cases for each of the error checks.
Also verified with Nick Kledzik that a BIND_OPCODE_SET_ADDEND_SLEB
opcode is legal in a lazy bind table, so code that had that as an error
check was removed.
With MachORebaseEntry and MachOBindEntry classes now returning
an llvm::Error in all cases for malformed input the variables Malformed
and logic to set use them is no longer needed and has been removed
from those classes.
Also in a few places, removed the redundant Done assignment to true
when also calling moveToEnd() as it does that assignment.
This only leaves the dyld compact export entries left to have
error handling yet to be added for the dyld compact info.
llvm-svn: 298883
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The vectorizer tries to replace truncations of induction variables with new
induction variables having the smaller type. After r295063, this optimization
was applied to all integer induction variables, including non-primary ones.
When optimizing the truncation of a non-primary induction variable, we still
need to transform the new induction so that it has the correct start value.
This should fix PR32419.
Reference: https://bugs.llvm.org/show_bug.cgi?id=32419
llvm-svn: 298882
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
used with small constants that the compiler can optimize.
While there recognize that we only need to clearUnusedBits on the single word case.
llvm-svn: 298881
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
When using -debug with -gen-register-info, tablegen will crash when
trying to print a name of a non-native register unit. This patch only
affects the debug information generated while running llvm-tblgen,
and has no impact on the compilable code coming out of it.
llvm-svn: 298875
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Patch by Axel Davy (axel.davy@normalesup.org)
Differential revision: https://reviews.llvm.org/D30153
llvm-svn: 298872
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Several static functions from the signal API can be invoked
simultaneously; RemoveFileOnSignal for instance can be called indirectly
by multiple parallel loadModule() invocations, which might lead to
the assertion:
Assertion failed: (NumRegisteredSignals < array_lengthof(RegisteredSignalInfo) && "Out of space for signal handlers!"),
  function RegisterHandler, file /llvm/lib/Support/Unix/Signals.inc, line 105.
RemoveFileOnSignal calls RegisterHandlers(), which isn't currently
mutex protected, leading to the behavior above. This potentially affect
a few other users of RegisterHandlers() too.
rdar://problem/30381224
llvm-svn: 298871
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
words.
This method is pretty new and probably isn't use much in the code base so this should have a negligible size impact. The OR and XOR operators are already inline.
llvm-svn: 298870
 | 
| | 
| 
| 
| 
| 
|  | 
r298863 used PtrReg, but that's never defined in release builds. Fix it.
llvm-svn: 298869
 | 
| | 
| 
| 
|  | 
llvm-svn: 298867
 | 
| | 
| 
| 
|  | 
llvm-svn: 298866
 | 
| | 
| 
| 
|  | 
llvm-svn: 298865
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
A majority of loads and stores at O0 access an alloca.
It's trivial to fold the G_FRAME_INDEX into the instruction; do it.
llvm-svn: 298864
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
We're not to the point of supporting the load/store patterns yet
(because they extensively use PatFrags).
But in the meantime, we can implement some of the simplest addressing
modes.
llvm-svn: 298863
 | 
| | 
| 
| 
| 
| 
|  | 
These occur very frequently, and are quite trivial to catch.
llvm-svn: 298862
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Patch by Axel Davy (axel.davy@normalesup.org)
Differential revision: https://reviews.llvm.org/D30150
llvm-svn: 298861
 | 
| | 
| 
| 
| 
| 
|  | 
This is more consistent with what we do for other operations. This shrinks the opt binary on my build by ~72k.
llvm-svn: 298858
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Patch by Axel Davy (axel.davy@normalesup.org)
Differential revision: https://reviews.llvm.org/D30145
llvm-svn: 298857
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
CBZ/CBNZ represent a substantial portion of all conditional branches.
Look through G_ICMP to select them.
We can't use tablegen yet because the existing patterns match an
AArch64ISD node.
llvm-svn: 298856
 | 
| | 
| 
| 
| 
| 
|  | 
Use it to compare immediate operands.
llvm-svn: 298855
 | 
| | 
| 
| 
|  | 
llvm-svn: 298854
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Enabled clamp and omod for v_cvt_* opcodes which have src0 of an integer type
Reviewers: vpykhtin, arsenm
Differential Revision: https://reviews.llvm.org/D31327
llvm-svn: 298852
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
Among other things, this allows Machine LICM to hoist a costly 'mrs'
instruction from within a loop.
Differential Revision: http://reviews.llvm.org/D31151
llvm-svn: 298851
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
As we introduced target triple environment amdgiz and amdgizcl, the address
space values are no longer enums. We have to decide the value by target triple.
The basic idea is to use struct AMDGPUAS to represent address space values.
For address space values which are not depend on target triple, use static
const members, so that they don't occupy extra memory space and is equivalent
to a compile time constant.
Since the struct is lightweight and cheap, it can be created on the fly at
the point of usage. Or it can be added as member to a pass and created at
the beginning of the run* function.
Differential Revision: https://reviews.llvm.org/D31284
llvm-svn: 298846
 |