| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 280987
|
|
|
|
|
|
| |
Recent change exposed this issue, breaking the Hexagon buildbots.
llvm-svn: 280973
|
|
|
|
|
|
|
|
| |
Shadow uses need to be analyzed together, since each individual shadow
will only have a partial reaching def. All shadows together may cover
a given register ref, while each individual shadow may not.
llvm-svn: 280855
|
|
|
|
| |
llvm-svn: 280851
|
|
|
|
| |
llvm-svn: 280717
|
|
|
|
|
|
|
|
| |
Author: Krzysztof Parzyszek <kparzysz@codeaurora.org>
Differential Revision: https://reviews.llvm.org/D24209
llvm-svn: 280552
|
|
|
|
|
|
| |
Reapply r280275, since MSVC accepts r280358.
llvm-svn: 280369
|
|
|
|
| |
llvm-svn: 280336
|
|
|
|
|
|
|
| |
This change is broken out from D23986, where XRay detects tail call
exits.
llvm-svn: 280331
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r280268, it causes all MSVC 2013 to ICE. This
appears to have been fixed in a later MSVC 2013 update, because I cannot
reproduce it locally. That said, all upstream LLVM bots are broken right
now, so I am reverting.
Also reverts dependent change r280275, "[Hexagon] Deal with undefs when
extending live intervals".
llvm-svn: 280301
|
|
|
|
| |
llvm-svn: 280275
|
|
|
|
|
|
| |
BB# ...
llvm-svn: 279750
|
|
|
|
|
|
|
|
| |
Add vector store print tracing option for hexagon vector instructions.
https://reviews.llvm.org/D23870
llvm-svn: 279739
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
compute it
Rename AllVRegsAllocated to NoVRegs. This avoids the connotation of
running after register and simply describes that no vregs are used in
a machine function. With that we can simply compute the property and do
not need to dump/parse it in .mir files.
Differential Revision: http://reviews.llvm.org/D23850
llvm-svn: 279698
|
|
|
|
| |
llvm-svn: 279681
|
|
|
|
| |
llvm-svn: 279678
|
|
|
|
| |
llvm-svn: 279642
|
|
|
|
|
|
|
| |
This is no longer necessary, because since r279625 the subregister
liveness properly accounts for read-undefs.
llvm-svn: 279637
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The register allocator can split a live interval of a register into a set
of smaller intervals. After the allocation of registers is complete, the
rewriter will modify the IR to replace virtual registers with the corres-
ponding physical registers. At this stage, if a register corresponding
to a subregister of a virtual register is used, the rewriter will check
if that subregister is undefined, and if so, it will add the <undef> flag
to the machine operand. The function verifying liveness of the subregis-
ter would assume that it is undefined, unless any of the subranges of the
live interval proves otherwise.
The problem is that the live intervals created during splitting do not
have any subranges, even if the original parent interval did. This could
result in the <undef> flag placed on a register that is actually defined.
Differential Revision: http://reviews.llvm.org/D21189
llvm-svn: 279625
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-apply this patch, hopefully I will get away without any warnings
in the constructor now.
This patch removes the MachineFunctionAnalysis. Instead we keep a
map from IR Function to MachineFunction in the MachineModuleInfo.
This allows the insertion of ModulePasses into the codegen pipeline
without breaking it because the MachineFunctionAnalysis gets dropped
before a module pass.
Peak memory should stay unchanged without a ModulePass in the codegen
pipeline: Previously the MachineFunction was freed at the end of a codegen
function pipeline because the MachineFunctionAnalysis was dropped; With
this patch the MachineFunction is freed after the AsmPrinter has
finished.
Differential Revision: http://reviews.llvm.org/D23736
llvm-svn: 279602
|
|
|
|
|
|
|
| |
dereferenced null pointer) in MachineModuleInfo::MachineModuleInfo that causes
-Werror builds (including several buildbots) to fail.
llvm-svn: 279580
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-apply this commit with the deletion of a MachineFunction delegated to
a separate pass to avoid use after free when doing this directly in
AsmPrinter.
This patch removes the MachineFunctionAnalysis. Instead we keep a
map from IR Function to MachineFunction in the MachineModuleInfo.
This allows the insertion of ModulePasses into the codegen pipeline
without breaking it because the MachineFunctionAnalysis gets dropped
before a module pass.
Peak memory should stay unchanged without a ModulePass in the codegen
pipeline: Previously the MachineFunction was freed at the end of a codegen
function pipeline because the MachineFunctionAnalysis was dropped; With
this patch the MachineFunction is freed after the AsmPrinter has
finished.
Differential Revision: http://reviews.llvm.org/D23736
llvm-svn: 279564
|
|
|
|
|
|
| |
Commit r279241 unintentionally reverted that ability.
llvm-svn: 279526
|
|
|
|
|
|
|
|
|
|
| |
MachineFunctionAnalysis => Enable (Machine)ModulePasses"
Reverting while tracking down a use after free.
This reverts commit r279502.
llvm-svn: 279503
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch removes the MachineFunctionAnalysis. Instead we keep a
map from IR Function to MachineFunction in the MachineModuleInfo.
This allows the insertion of ModulePasses into the codegen pipeline
without breaking it because the MachineFunctionAnalysis gets dropped
before a module pass.
Peak memory should stay unchanged without a ModulePass in the codegen
pipeline: Previously the MachineFunction was freed at the end of a codegen
function pipeline because the MachineFunctionAnalysis was dropped; With
this patch the MachineFunction is freed after the AsmPrinter has
finished.
Differential Revision: http://reviews.llvm.org/D23736
llvm-svn: 279502
|
|
|
|
|
|
|
| |
Do not packetize the instruction setting the branch address with the
indirect branch itself.
llvm-svn: 279324
|
|
|
|
| |
llvm-svn: 279303
|
|
|
|
| |
llvm-svn: 279302
|
|
|
|
|
|
|
|
| |
They can be deleted or replicated, so the cache may become outdated.
They only need to be visited once during frame lowering, so just scan
the function instead.
llvm-svn: 279297
|
|
|
|
|
|
|
| |
- Recognize C2_cmpgtui, S2_tstbit_i, and S4_ntstbit_i.
- Avoid creating new-value instructions with both source operands equal.
llvm-svn: 279286
|
|
|
|
| |
llvm-svn: 279280
|
|
|
|
|
|
|
|
|
| |
Ensure that load locked and store conditional instructions are only
packetized with ALU32 instructions.
Patch by Ben Craig.
llvm-svn: 279272
|
|
|
|
| |
llvm-svn: 279269
|
|
|
|
|
|
| |
Patch by Jyotsna Verma.
llvm-svn: 279267
|
|
|
|
| |
llvm-svn: 279265
|
|
|
|
| |
llvm-svn: 279255
|
|
|
|
| |
llvm-svn: 279254
|
|
|
|
|
|
| |
Patch by Arnold Schwaighofer.
llvm-svn: 279251
|
|
|
|
|
|
| |
Patch by Brendon Cahoon.
llvm-svn: 279249
|
|
|
|
| |
llvm-svn: 279248
|
|
|
|
| |
llvm-svn: 279246
|
|
|
|
| |
llvm-svn: 279245
|
|
|
|
| |
llvm-svn: 279244
|
|
|
|
| |
llvm-svn: 279243
|
|
|
|
| |
llvm-svn: 279241
|
|
|
|
|
|
|
|
|
| |
Improved handling of fma, floating point min/max, additional load/store
instructions for floating point types.
Patch by Jyotsna Verma.
llvm-svn: 279239
|
|
|
|
|
|
|
|
|
|
| |
The names of the tablegen defs now match the names of the ISD nodes.
This makes the world a slightly saner place, as previously "fround" matched
ISD::FP_ROUND and not ISD::FROUND.
Differential Revision: https://reviews.llvm.org/D23597
llvm-svn: 279129
|
|
|
|
| |
llvm-svn: 279067
|
|
|
|
|
|
| |
Follow up to r278902. I had missed "fall through", with a space.
llvm-svn: 278970
|
|
|
|
|
|
|
| |
This is a mechanical change of comments in switches like fallthrough,
fall-through, or fall-thru to use the LLVM_FALLTHROUGH macro instead.
llvm-svn: 278902
|