Revision tags: llvmorg-10.0.1-rc1 |
|
#
505685a6 |
| 24-Apr-2020 |
Jean-Michel Gorius <jean-michel.gorius@ens-rennes.fr> |
[llvm][CodeGen] Check for memory instructions when querying for alias status
Summary: Add a check to make sure that MachineInstr::mayAlias returns prematurely if at least one of its instruction para
[llvm][CodeGen] Check for memory instructions when querying for alias status
Summary: Add a check to make sure that MachineInstr::mayAlias returns prematurely if at least one of its instruction parameters does not access memory. This prevents calls to TargetInstrInfo::areMemAccessesTriviallyDisjoint with incompatible instructions.
A side effect of this change is to render the mayAlias helper in the AArch64 load/store optimizer obsolete. We can now directly call the MachineInstr::mayAlias member function.
Reviewers: hfinkel, t.p.northover, mcrosier, eli.friedman, efriedma
Reviewed By: efriedma
Subscribers: efriedma, kristof.beyls, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78823
show more ...
|
#
1a3e89aa |
| 14-Apr-2020 |
Konstantin Schwarz <konstantin.schwarz@hightec-rt.com> |
[MIR] Add comments to INLINEASM immediate flag MachineOperands
Summary: The INLINEASM MIR instructions use immediate operands to encode the values of some operands. The MachineInstr pretty printer f
[MIR] Add comments to INLINEASM immediate flag MachineOperands
Summary: The INLINEASM MIR instructions use immediate operands to encode the values of some operands. The MachineInstr pretty printer function already handles those operands and prints human readable annotations instead of the immediates. This patch adds similar annotations to the output of the MIRPrinter, however uses the new MIROperandComment feature.
Reviewers: SjoerdMeijer, arsenm, efriedma
Reviewed By: arsenm
Subscribers: qcolombet, sdardis, jvesely, wdng, nhaehnle, hiraditya, jrtc27, atanasyan, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D78088
show more ...
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3 |
|
#
d955b221 |
| 29-Feb-2020 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[MachineInst] Remove dead code. NFCI.
The MachineFunction MF value is not used any more and is always null.
|
#
6e7a7683 |
| 29-Feb-2020 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
Make argument const to silence cppcheck warning. NFCI.
|
#
016d91cc |
| 27-Feb-2020 |
Djordje Todorovic <djordje.todorovic@rt-rk.com> |
[CallSiteInfo] Handle bundles when updating call site info
This will address the issue: P8198 and P8199 (from D73534).
The methods was not handle bundles properly.
Differential Revision: https://r
[CallSiteInfo] Handle bundles when updating call site info
This will address the issue: P8198 and P8199 (from D73534).
The methods was not handle bundles properly.
Differential Revision: https://reviews.llvm.org/D74904
show more ...
|
#
a12f1d6a |
| 25-Feb-2020 |
Quentin Colombet <qcolombet@apple.com> |
[MachineInstr] Add a dumpr method
Add a dump method that recursively prints an instruction and all the instructions defining its operands and so on.
This is helpful when looking at combiner issue.
[MachineInstr] Add a dumpr method
Add a dump method that recursively prints an instruction and all the instructions defining its operands and so on.
This is helpful when looking at combiner issue.
NFC
Differential Revision: https://reviews.llvm.org/D75094
show more ...
|
Revision tags: llvmorg-10.0.0-rc2 |
|
#
0d0ef315 |
| 06-Feb-2020 |
Vedant Kumar <vsk@apple.com> |
[MachineInstr] Add isCandidateForCallSiteEntry predicate
Add the isCandidateForCallSiteEntry predicate to MachineInstr to determine whether a DWARF call site entry should be created for an instructi
[MachineInstr] Add isCandidateForCallSiteEntry predicate
Add the isCandidateForCallSiteEntry predicate to MachineInstr to determine whether a DWARF call site entry should be created for an instruction.
For now, it's enough to have any call instruction that doesn't belong to a blacklisted set of opcodes. For these opcodes, a call site entry isn't meaningful.
Differential Revision: https://reviews.llvm.org/D74159
show more ...
|
Revision tags: llvmorg-10.0.0-rc1, llvmorg-11-init |
|
#
a8ed86b5 |
| 11-Jan-2020 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
moveOperands - assert Src/Dst MachineOperands are non-null.
Fixes static-analyzer warnings.
|
#
f0fd11df |
| 10-Jan-2020 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
[FPEnv] Invert sense of MIFlag::FPExcept flag
In D71841 we inverted the sense of the SDNode-level flag to ensure all nodes default to potentially raising FP exceptions unless otherwise specified --
[FPEnv] Invert sense of MIFlag::FPExcept flag
In D71841 we inverted the sense of the SDNode-level flag to ensure all nodes default to potentially raising FP exceptions unless otherwise specified -- i.e. if we forget to propagate the flag somewhere, the effect is now only lost performance, not incorrect code.
However, the related flag at the MI level still defaults to nodes not raising FP exceptions unless otherwise specified. To be fully on the (conservatively) safe side, we should invert that flag as well.
This patch does so by replacing MIFlag::FPExcept with MIFlag::NoFPExcept. (Note that this does also introduce an incompatible change in the MIR format.)
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D72466
show more ...
|
#
cfd84984 |
| 10-Jan-2020 |
Peng Guo <peng_guo@apple.com> |
[MIR] Fix cyclic dependency of MIR formatter
Summary: Move MIR formatter pointer from TargetMachine to TargetInstrInfo to avoid cyclic dependency between target & codegen.
Reviewers: dsanders, bkra
[MIR] Fix cyclic dependency of MIR formatter
Summary: Move MIR formatter pointer from TargetMachine to TargetInstrInfo to avoid cyclic dependency between target & codegen.
Reviewers: dsanders, bkramer, arsenm
Subscribers: wdng, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72485
show more ...
|
#
de3d0ee0 |
| 09-Jan-2020 |
Daniel Sanders <daniel_l_sanders@apple.com> |
Revert "Revert "[MIR] Target specific MIR formating and parsing""
There was an unguarded dereference of MF in a function that permitted nullptr. Fixed
This reverts commit 71d64f72f934631aa2f12b9542
Revert "Revert "[MIR] Target specific MIR formating and parsing""
There was an unguarded dereference of MF in a function that permitted nullptr. Fixed
This reverts commit 71d64f72f934631aa2f12b9542c23f74f256f494.
show more ...
|
#
71d64f72 |
| 09-Jan-2020 |
Nico Weber <thakis@chromium.org> |
Revert "[MIR] Target specific MIR formating and parsing"
This reverts commit 3ef05d85be8c3666ebfa3ad986eb334da5195a47. It broke check-llvm on many bots, see comments on D69836.
|
#
3ef05d85 |
| 09-Jan-2020 |
Peng Guo <peng_guo@apple.com> |
[MIR] Target specific MIR formating and parsing
Summary: Added MIRFormatter for target specific MIR formating and parsing with immediate and custom pseudo source values. Target machine can subclass
[MIR] Target specific MIR formating and parsing
Summary: Added MIRFormatter for target specific MIR formating and parsing with immediate and custom pseudo source values. Target machine can subclass MIRFormatter and implement custom logic for printing and parsing immediate and custom pseudo source values for better readability.
* Target specific immediate mnemonic need to start with "." follows by identifier string. When MIR parser sees immediate it will call target specific parsing function.
* Custom pseudo source value need to start with custom follows by double-quoted string. MIR parser will pass the quoted string to target specific PSV parsing function.
* MIRFormatter have 2 helper functions to facilitate LLVM value printing and parsing for custom PSV if they refers LLVM values.
Patch by Peng Guo
Reviewers: dsanders, arsenm
Reviewed By: dsanders
Subscribers: wdng, jvesely, nhaehnle, hiraditya, jfb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69836
show more ...
|
#
5ab6fa7b |
| 09-Jan-2020 |
Daniel Sanders <daniel_l_sanders@apple.com> |
Revert "[MIR] Target specific MIR formating and parsing"
Forgot to credit Peng in the commit message.
This reverts commit be841f89d0014b1e0246a4feae941b2f74abd908.
|
#
be841f89 |
| 09-Jan-2020 |
Peng Guo <peng_guo@apple.com> |
[MIR] Target specific MIR formating and parsing
Summary: Added MIRFormatter for target specific MIR formating and parsing with immediate and custom pseudo source values. Target machine can subclass
[MIR] Target specific MIR formating and parsing
Summary: Added MIRFormatter for target specific MIR formating and parsing with immediate and custom pseudo source values. Target machine can subclass MIRFormatter and implement custom logic for printing and parsing immediate and custom pseudo source values for better readability.
* Target specific immediate mnemonic need to start with "." follows by identifier string. When MIR parser sees immediate it will call target specific parsing function.
* Custom pseudo source value need to start with custom follows by double-quoted string. MIR parser will pass the quoted string to target specific PSV parsing function.
* MIRFormatter have 2 helper functions to facilitate LLVM value printing and parsing for custom PSV if they refers LLVM values.
Reviewers: dsanders, arsenm
Reviewed By: dsanders
Subscribers: wdng, jvesely, nhaehnle, hiraditya, jfb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69836
show more ...
|
Revision tags: llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1 |
|
#
c953e061 |
| 15-Nov-2019 |
Jay Foad <jay.foad@amd.com> |
[CodeGen] Increase the size of a SmallVector
The SmallVector reserve() call in MachineInstrExpressionTrait::getHashValue accounted for over 3% of all calls to malloc() when I compiled a bunch of gra
[CodeGen] Increase the size of a SmallVector
The SmallVector reserve() call in MachineInstrExpressionTrait::getHashValue accounted for over 3% of all calls to malloc() when I compiled a bunch of graphics shaders for the AMDGPU target. Its initial size was only enough for machine instructions with up to 7 operands, but for AMDGPU 8 and 10 operands are very common. Here's a histogram of number of operands for each call to getHashValue, gathered from the same collection of shaders:
1 13503 2 254273 3 135781 4 422508 5 614997 6 194953 7 287248 8 1517255 9 31218 10 1191269 11 70731 12 24 13 77 15 84 17 4692 27 16 33 705 49 6
Typical instructions with 8 and 10 operands are floating point arithmetic and multiply-accumulate instructions like:
%83:vgpr_32 = V_MUL_F32_e64 0, killed %82:vgpr_32, 0, killed %81:vgpr_32, 0, 0, implicit $exec %330:vgpr_32 = V_MAC_F32_e64 0, killed %327:vgpr_32, 0, killed %329:sgpr_32, 0, %328:vgpr_32(tied-def 0), 0, 0, implicit $exec
Differential Revision: https://reviews.llvm.org/D70301
show more ...
|
#
a078c77d |
| 05-Nov-2019 |
Amy Huang <akhuang@google.com> |
[MIR] Add MIR parsing for heap alloc site instruction markers
Summary: This patch adds MIR parsing and printing for heap alloc markers, which were added in D69136. They are printed as an operand sim
[MIR] Add MIR parsing for heap alloc site instruction markers
Summary: This patch adds MIR parsing and printing for heap alloc markers, which were added in D69136. They are printed as an operand similar to pre-/post-instr symbols, with a heap-alloc-marker token and a metadata node.
Reviewers: rnk
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69864
show more ...
|
#
ec82eb2d |
| 29-Oct-2019 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
Fix unused variable warning. NFCI.
|
#
74204304 |
| 28-Oct-2019 |
Amy Huang <akhuang@google.com> |
Recommit "Add a heap alloc site marker field to the ExtraInfo in MachineInstrs"
Summary: Fixes some things from original commit at https://reviews.llvm.org/D69136. The main change is that the heap a
Recommit "Add a heap alloc site marker field to the ExtraInfo in MachineInstrs"
Summary: Fixes some things from original commit at https://reviews.llvm.org/D69136. The main change is that the heap alloc marker is always stored as ExtraInfo in the machine instruction instead of in the PointerSumType because it cannot hold more than 4 pointer types.
Add instruction marker to MachineInstr ExtraInfo. This does almost the same thing as Pre/PostInstrSymbols, except that it doesn't create a label until printing instructions. This allows for labels to be put around instructions that are deleted/duplicated somewhere. Use this marker to track heap alloc site call instructions.
Reviewers: rnk
Subscribers: MatzeB, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69536
show more ...
|
#
64c1f660 |
| 25-Oct-2019 |
Amy Huang <akhuang@google.com> |
Revert "Add an instruction marker field to the ExtraInfo in MachineInstrs."
Reverting commit b85b4e5a6f8579c137fecb59a4d75d7bfb111f79 due to some buildbot failures/ out of memory errors.
|
#
b85b4e5a |
| 16-Oct-2019 |
Amy Huang <akhuang@google.com> |
Add an instruction marker field to the ExtraInfo in MachineInstrs.
Summary: Add instruction marker to MachineInstr ExtraInfo. This does almost the same thing as Pre/PostInstrSymbols, except that it
Add an instruction marker field to the ExtraInfo in MachineInstrs.
Summary: Add instruction marker to MachineInstr ExtraInfo. This does almost the same thing as Pre/PostInstrSymbols, except that it doesn't create a label until printing instructions. This allows for labels to be put around instructions that are deleted/duplicated somewhere.
Also undo the workaround in r375137.
Reviewers: rnk
Subscribers: MatzeB, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69136
show more ...
|
#
1d7b4136 |
| 19-Oct-2019 |
Reid Kleckner <rnk@google.com> |
Prune two MachineInstr.h includes, fix up deps
MachineInstr.h included AliasAnalysis.h, which includes a world of IR constructs mostly unneeded in CodeGen. Prune it. Same for DebugInfoMetadata.h.
N
Prune two MachineInstr.h includes, fix up deps
MachineInstr.h included AliasAnalysis.h, which includes a world of IR constructs mostly unneeded in CodeGen. Prune it. Same for DebugInfoMetadata.h.
Noticed with -ftime-trace.
llvm-svn: 375311
show more ...
|
#
f5524f04 |
| 26-Sep-2019 |
Changpeng Fang <changpeng.fang@gmail.com> |
Remove the AliasAnalysis argument in function areMemAccessesTriviallyDisjoint
Reviewers: arsenm
Differential Revision: https://reviews.llvm.org/D58360
llvm-svn: 373024
|
Revision tags: llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4 |
|
#
22493f66 |
| 02-Sep-2019 |
Jeremy Morse <jeremy.morse.llvm@gmail.com> |
[DebugInfo] LiveDebugValues: correctly discriminate kinds of variable locations
The missing line added by this patch ensures that only spilt variable locations are candidates for being restored from
[DebugInfo] LiveDebugValues: correctly discriminate kinds of variable locations
The missing line added by this patch ensures that only spilt variable locations are candidates for being restored from the stack. Otherwise, register or constant-value information can be interpreted as a spill location, through a union.
The added regression test replicates a scenario where this occurs: the stack load from [rsp] causes the register-location DBG_VALUE to be "restored" to rsi, when it should be left alone. See PR43058 for details.
Un x-fail a test that was suffering from this from a previous patch.
Differential Revision: https://reviews.llvm.org/D66895
llvm-svn: 370648
show more ...
|
Revision tags: llvmorg-9.0.0-rc3 |
|
#
0eaee545 |
| 15-Aug-2019 |
Jonas Devlieghere <jonas@devlieghere.com> |
[llvm] Migrate llvm::make_unique to std::make_unique
Now that we've moved to C++14, we no longer need the llvm::make_unique implementation from STLExtras.h. This patch is a mechanical replacement of
[llvm] Migrate llvm::make_unique to std::make_unique
Now that we've moved to C++14, we no longer need the llvm::make_unique implementation from STLExtras.h. This patch is a mechanical replacement of (hopefully) all the llvm::make_unique instances across the monorepo.
llvm-svn: 369013
show more ...
|