Working on ROCm at AMD
User Details
- User Since
- Oct 17 2012, 11:25 AM (570 w, 4 d)
Mon, Sep 18
Abandoning. I agree with relying on attribute speculatable. If we figure out the conditions that make a convergent call speculatable, then at that time, we should use the appropriate attribute to record that fact. On the other hand, if speculation of a convergent call is dependent on the surrounding control flow, then we will probably have to do it as a separate optimization.
Fri, Sep 1
Thu, Aug 31
Wed, Aug 30
LGTM, with a few nits.
Mon, Aug 28
Bump! Waiting for more info on comments from @arsenm
Aug 22 2023
Aug 21 2023
Superseded by D152431.
Superseded by D147116
- rebased
- addressed some review comments
- added machine verifier
Aug 20 2023
Aug 18 2023
- updated the lit test to match the changed error message
@AlexM FYI: submitted a different fix in the same location: 4d081560cd3b6ac114aee15f50480dd978b55a44
Aug 17 2023
- rebased
- fixed formatting near assert
- added clang-format off/on to allow existing code through pre-checks
Aug 16 2023
Can you please reword the change description? Rather than talking about the code in terms of if/while, it's more helpful to talk about what is happening. For example, "we should first check for an irreducible outermost cycle before checking if the parent is reducible".
- rebased
- machine verifier disallows NoConvergent on opcodes that are not isConvergent
- new test for the machine verifier
- added missing comment
Aug 10 2023
Aug 9 2023
Adding @xbolva00, @RKSimon and @craig.topper since a lot of thought seems to have been involved when the size of MIFlags was bumped to uint32_t, in D118118. Note that we intend to use this new flag MIFlags::NoConvergent only in GlobalISel.
Aug 8 2023
What is the "old syncscope parameter" mentioned in the change description? In the actual change and the lit tests, the default "system" scope is being changed to "agent", which superficially looks like an incorrect change.
Aug 7 2023
Aug 4 2023
Aug 2 2023
- rebase
- fix build failures:
- Shared libraries build failed with undefined references due to "extern template" declarations.
- Modules build failed due to a cycle dependence between llvm/ADT and llvm/IR. The Generic*Impl.h files should be in llvm/IR to prevent this.
Aug 1 2023
Reopened this because of build errors with shared libraries enabled.
Jul 31 2023
- rebase
- replaced std::function with function_ref
- removed the everything capture
- renamed CheckFailed() to reportFailure() ... more aligned with the coding standard
Jul 30 2023
Jul 29 2023
Jul 28 2023
- rebased
- replaced the "Explicit" functions with overloads
- s/Code/Opcode/
- renamed verifyIntrinsic* functions
Jul 27 2023
- fixed missing headers
Jul 26 2023
- reverted and fixed buildbot breakage
- there were dangling uses of MachineInstr::getIntrinsicID() in other targets
- note to self: don't forget to check Phab for a successful build before submitting!
Jul 25 2023
- rebased
- added the GIntrinsic::is() method
- fixed issues with coding style
Jul 24 2023
Bump! This is blocking further changes. Added some more reviewers to get more eyeballs.