Let other class could reuse the used/def of subregister from DetectDeadLanes pass.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/CodeGen/DetectDeadLanes.cpp | ||
---|---|---|
502 | Do we need to skip the "Mark operands as dead/unused." part of runOnce for this usage? |
llvm/lib/CodeGen/DetectDeadLanes.cpp | ||
---|---|---|
502 | I'm not sure whether "Mark operands as dead" is part of computing DeadLanes algorithm. And we remove "Mark operands as dead" may get an unaccomplished result? |
llvm/lib/CodeGen/DetectDeadLanes.cpp | ||
---|---|---|
443 | Can we split this function into two functions above and below this point and check this flag in the while loop? | |
486–487 | This debug message doesn't make sense for the call from the RISC-V pass. | |
519 | This comment belongs to the if (!MRI->subRegLivenessEnabled()) that got moved. |
llvm/lib/CodeGen/DetectDeadLanes.cpp | ||
---|---|---|
443 | let me rephrase Can we split this function into two functions above and below this point? Have the while loop in the caller only call the second half when NeedSetUndef is true. The first function can just return void since it doesn't modify anything. |
Split runOnce function into ModifySubRegisterOperandStatus and computeSubRegisterLaneBitInfo
- ModifySubRegisterOperandStatus -> modifySubRegisterOperandStatus
- if not change anything, skip computeSubRegisterLaneBitInfo
- Add comment
llvm/lib/CodeGen/DetectDeadLanes.cpp | ||
---|---|---|
497 | Change the loop back to do while and just break in the middle like: do { computeSubRegisterLaneBitInfo(); if (!NeedSetUndef) break; bool LocalChanged; std::tie(LocalChanged, Again) = runOnce(MF); Changed |= LocalChanged; } while(Again); |
llvm/include/llvm/CodeGen/DetectDeadLanes.h | ||
---|---|---|
42 | We shouldn't have "using namespace llvm" in a header file |
We shouldn't have "using namespace llvm" in a header file