#
36ce1b01 |
| 10-Feb-2016 |
Quentin Colombet <qcolombet@apple.com> |
[GlobalISel] Remember the size of generic virtual registers
llvm-svn: 260468
|
#
5923973f |
| 05-Feb-2016 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix printing of f16 machine operands
Only single and double FP immediates are correctly printed by MachineInstr::print() during debug output. Half float type goes to APFloat::convertToDouble() and h
Fix printing of f16 machine operands
Only single and double FP immediates are correctly printed by MachineInstr::print() during debug output. Half float type goes to APFloat::convertToDouble() and hits assertion it is not a double semantics. This diff prints half machine operands correctly.
This cannot currently be hit by any in-tree target.
Patch by Stanislav Mekhanoshin
llvm-svn: 259857
show more ...
|
Revision tags: llvmorg-3.8.0-rc2 |
|
#
eb2a2546 |
| 29-Jan-2016 |
Yaron Keren <yaron.keren@gmail.com> |
Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. clang part in r259232, this is the LLVM part of the patch.
llvm-svn: 259240
|
Revision tags: llvmorg-3.8.0-rc1 |
|
#
5eb90a78 |
| 06-Jan-2016 |
Philip Reames <listmail@philipreames.com> |
Consolidate MemRefs handling from BranchFolding and correct latent bug
Move the logic from BranchFolding to use the shared infrastructure for merging MMOs introduced in 256909. This has the effect o
Consolidate MemRefs handling from BranchFolding and correct latent bug
Move the logic from BranchFolding to use the shared infrastructure for merging MMOs introduced in 256909. This has the effect of making BranchFolding more capable.
In the process, fix a latent bug. The existing handling for merging didn't handle the case where one of the instructions being merged had overflowed and dropped MemRefs. This was a latent bug in the places the code was commoned from, but potentially reachable in BranchFolding.
Once this is in, we're left with a single place to consider implementing MMO unique-ing as proposed in http://reviews.llvm.org/D15230.
Differential Revision: http://reviews.llvm.org/D15913
llvm-svn: 256966
show more ...
|
#
2d2fc4ad |
| 06-Jan-2016 |
Philip Reames <listmail@philipreames.com> |
Fix a warning [NFC]
llvm-svn: 256916
|
#
c86ed005 |
| 06-Jan-2016 |
Philip Reames <listmail@philipreames.com> |
Extract helper function to merge MemoryOperand lists [NFC]
In the discussion on http://reviews.llvm.org/D15730, Andy pointed out we had a utility function for merging MMO lists. Since it turned we a
Extract helper function to merge MemoryOperand lists [NFC]
In the discussion on http://reviews.llvm.org/D15730, Andy pointed out we had a utility function for merging MMO lists. Since it turned we actually had two copies and there's another review in progress (http://reviews.llvm.org/D15230) which needs the same, extract it into a utility function and clean up the interfaces to make it easier to use with a MachineInstBuilder.
I introduced a pair here to track size and allocation together. I think we should probably move in the direction of the MachineOperandsRef helper class, but I'm leaving that for further work. I want to get the poison state introduced before I make major changes to the interface.
Differential Revision: http://reviews.llvm.org/D15757
llvm-svn: 256909
show more ...
|
#
c47c6ac0 |
| 02-Jan-2016 |
Yaron Keren <yaron.keren@gmail.com> |
Correct misleading formatting of several ifs followed by two statements without braces. While the original code would work with or without braces, it makes sense to set HaveSemi to true only if (!Hav
Correct misleading formatting of several ifs followed by two statements without braces. While the original code would work with or without braces, it makes sense to set HaveSemi to true only if (!HaveSemi), otherwise it's already true, so I put the assignment inside the if block. This addresses PR25998.
llvm-svn: 256688
show more ...
|
#
e5e035a3 |
| 05-Dec-2015 |
Craig Topper <craig.topper@gmail.com> |
Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef.
llvm-svn: 254843
|
Revision tags: llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1 |
|
#
2c98d0f4 |
| 11-Nov-2015 |
Matthias Braun <matze@braunis.de> |
MachineInstr: addRegisterDefReadUndef() => setRegisterDefReadUndef()
This way we can not only add but also remove read undef flags.
llvm-svn: 252678
|
#
5ec1568c |
| 09-Oct-2015 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
CodeGen: Continue removing ilist iterator implicit conversions
llvm-svn: 249884
|
#
0a7d0ad9 |
| 22-Sep-2015 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Untabify.
llvm-svn: 248264
|
#
a9cb538a |
| 22-Sep-2015 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Reformat blank lines.
llvm-svn: 248263
|
#
098cd9fb |
| 16-Sep-2015 |
Michael Kuperstein <michael.m.kuperstein@intel.com> |
[X86] Fix emitEpilogue() to make less assumptions about pops
This is the mirror image of r242395. When X86FrameLowering::emitEpilogue() looks for where to insert the %esp addition that deallocates s
[X86] Fix emitEpilogue() to make less assumptions about pops
This is the mirror image of r242395. When X86FrameLowering::emitEpilogue() looks for where to insert the %esp addition that deallocates stack space used for local allocations, it assumes that any sequence of pop instructions from function exit backwards consists purely of restoring callee-save registers.
This may be false, since from some point backward, the pops may be clean-up of stack space allocated for arguments to a call.
Patch by: amjad.aboud@intel.com Differential Revision: http://reviews.llvm.org/D12688
llvm-svn: 247784
show more ...
|
Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3 |
|
#
1e97a0b3 |
| 19-Aug-2015 |
Daniel Sanders <daniel.sanders@imgtec.com> |
Emit <regmask R1 R2 R3 ...> instead of just <regmask> in IR dumps.
Reviewers: qcolombet
Subscribers: kparzysz, qcolombet, llvm-commits
Differential Revision: http://reviews.llvm.org/D11644
llvm-s
Emit <regmask R1 R2 R3 ...> instead of just <regmask> in IR dumps.
Reviewers: qcolombet
Subscribers: kparzysz, qcolombet, llvm-commits
Differential Revision: http://reviews.llvm.org/D11644
llvm-svn: 245433
show more ...
|
Revision tags: studio-1.4 |
|
#
bc7f99a3 |
| 12-Aug-2015 |
Michael Kuperstein <michael.m.kuperstein@intel.com> |
[X86] Allow x86 call frame optimization to fold more loads into pushes
This abstracts away the test for "when can we fold across a MachineInstruction" into the the MI interface, and changes call-fra
[X86] Allow x86 call frame optimization to fold more loads into pushes
This abstracts away the test for "when can we fold across a MachineInstruction" into the the MI interface, and changes call-frame optimization use the same test the peephole optimizer users.
Differential Revision: http://reviews.llvm.org/D11945
llvm-svn: 244729
show more ...
|
#
e40c8a2b |
| 11-Aug-2015 |
Alex Lorenz <arphaman@gmail.com> |
PseudoSourceValue: Replace global manager with a manager in a machine function.
This commit removes the global manager variable which is responsible for storing and allocating pseudo source values a
PseudoSourceValue: Replace global manager with a manager in a machine function.
This commit removes the global manager variable which is responsible for storing and allocating pseudo source values and instead it introduces a new manager class named 'PseudoSourceValueManager'. Machine functions now own an instance of the pseudo source value manager class.
This commit also modifies the 'get...' methods in the 'MachinePointerInfo' class to construct pseudo source values using the instance of the pseudo source value manager object from the machine function.
This commit updates calls to the 'get...' methods from the 'MachinePointerInfo' class in a lot of different files because those calls now need to pass in a reference to a machine function to those methods.
This change will make it easier to serialize pseudo source values as it will enable me to transform the mips specific MipsCallEntry PseudoSourceValue subclass into two target independent subclasses.
Reviewers: Akira Hatanaka llvm-svn: 244693
show more ...
|
Revision tags: llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1 |
|
#
c0374526 |
| 26-Jun-2015 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
CodeGen: Create a proper ModuleSlotTracker for MachineInstr
Another follow-up related to r240848: try a little harder to share slot tracking calculations within a single `MachineInstr` dump. This i
CodeGen: Create a proper ModuleSlotTracker for MachineInstr
Another follow-up related to r240848: try a little harder to share slot tracking calculations within a single `MachineInstr` dump. This is unrelated to `MachineFunction::print()`, since that should be passing through the function's `ModuleSlotTracker` by now, but could affect the speed of dumping from a debugger if there is more than one IR-level operand.
llvm-svn: 240852
show more ...
|
#
6529ed40 |
| 26-Jun-2015 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
CodeGen: Push the ModuleSlotTracker through Metadata
For another 1% speedup on the testcase in PR23865, push the `ModuleSlotTracker` through to metadata-related printing in `MachineBasicBlock::print
CodeGen: Push the ModuleSlotTracker through Metadata
For another 1% speedup on the testcase in PR23865, push the `ModuleSlotTracker` through to metadata-related printing in `MachineBasicBlock::print()`.
llvm-svn: 240848
show more ...
|
#
f48e9827 |
| 26-Jun-2015 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
CodeGen: Push the ModuleSlotTracker through MachineOperands
Push `ModuleSlotTracker` through `MachineOperand`s, dropping the time for `llc -print-machineinstrs` on the testcase in PR23865 from ~13 s
CodeGen: Push the ModuleSlotTracker through MachineOperands
Push `ModuleSlotTracker` through `MachineOperand`s, dropping the time for `llc -print-machineinstrs` on the testcase in PR23865 from ~13 seconds to ~9 seconds. Now `SlotTracker::processFunctionMetadata()` accounts for only 8% of the runtime, which seems reasonable.
llvm-svn: 240845
show more ...
|
#
572c29af |
| 26-Jun-2015 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Show invariant loads in MMO dumping
llvm-svn: 240813
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1 |
|
#
ac80dc75 |
| 17-Jun-2015 |
Chandler Carruth <chandlerc@gmail.com> |
[PM/AA] Remove the Location typedef from the AliasAnalysis class now that it is its own entity in the form of MemoryLocation, and update all the callers.
This is an entirely mechanical change. Refer
[PM/AA] Remove the Location typedef from the AliasAnalysis class now that it is its own entity in the form of MemoryLocation, and update all the callers.
This is an entirely mechanical change. References to "Location" within AA subclases become "MemoryLocation", and elsewhere "AliasAnalysis::Location" becomes "MemoryLocation". Hope that helps out-of-tree folks update.
llvm-svn: 239885
show more ...
|
#
e41e146c |
| 29-May-2015 |
Matthias Braun <matze@braunis.de> |
CodeGen: Use mop_iterator instead of MIOperands/ConstMIOperands
MIOperands/ConstMIOperands are classes iterating over the MachineOperand of a MachineInstr, however MachineInstr::mop_iterator does th
CodeGen: Use mop_iterator instead of MIOperands/ConstMIOperands
MIOperands/ConstMIOperands are classes iterating over the MachineOperand of a MachineInstr, however MachineInstr::mop_iterator does the same thing.
I assume these two iterators exist to have a uniform interface to iterate over the operands of a machine instruction bundle and a single machine instruction. However in practice I find it more confusing to have 2 different iterator classes, so this patch transforms (nearly all) the code to use mop_iterators.
The only exception being MIOperands::anlayzePhysReg() and MIOperands::analyzeVirtReg() still needing an equivalent, I leave that as an exercise for the next patch.
Differential Revision: http://reviews.llvm.org/D9932
This version is slightly modified from the proposed revision in that it introduces MachineInstr::getOperandNo to avoid the extra counting variable in the few loops that previously used MIOperands::getOperandNo.
llvm-svn: 238539
show more ...
|
#
07066cca |
| 19-May-2015 |
Matthias Braun <matze@braunis.de> |
MachineInstr: Remove unused parameter.
llvm-svn: 237726
|
#
9a9d58a2 |
| 16-May-2015 |
Craig Topper <craig.topper@gmail.com> |
Correct indentation. NFC
llvm-svn: 237512
|
Revision tags: llvmorg-3.6.1, llvmorg-3.6.1-rc1 |
|
#
633dba4f |
| 06-May-2015 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Add ChangeTo* to MachineOperand for symbols
llvm-svn: 236612
|