| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[mlir] Add a null pointer check in symbol lookup (#115165) Dead code analysis crashed because a symbol that is called/used didn't appear in the symbol table. This patch fixes this by adding a nullptr check after symbol table lookup. | 1 年前 | |
[mlir] support non-interprocedural dataflow analyses (#75583) The core implementation of the dataflow anlysis framework is interpocedural by design. While this offers better analysis precision, it also comes with additional cost as it takes longer for the analysis to reach the fixpoint state. Add a configuration mechanism to the dataflow solver to control whether it operates inteprocedurally or not to offer clients a choice. As a positive side effect, this change also adds hooks for explicitly processing external/opaque function calls in the dataflow analyses, e.g., based off of attributes present in the the function declaration or call operation such as alias scopes and modref available in the LLVM dialect. This change should not affect existing analyses and the default solver configuration remains interprocedural. Co-authored-by: Jacob Peng <jacobmpeng@gmail.com> | 2 年前 | |
[mlir][dataflow] Propagate errors from visitOperation (#105448) Base DataFlowAnalysis::visit returns LogicalResult, but wrappers's Sparse/Dense/Forward/Backward visitOperation doesn't. Sometimes it's needed to abort solver early if some unrecoverable condition detected inside analysis. Update visitOperation to return LogicalResult and propagate it to solver.initializeAndRun(). Only visitOperation is updated for now, it's possible to update other hooks like visitNonControlFlowArguments, bit it's not needed immediately and let's keep this PR small. Hijacked UnderlyingValueAnalysis test analysis to test it. | 1 年前 | |
[mlir] Allow loop-like operations in AbstractDenseForwardDataFlowAnalysis (#66179) Remove assertion violated by loop-like operations. Signed-off-by: Victor Perez <victor.perez@codeplay.com> | 2 年前 | |
[MLIR] Fix Liveness analysis handling of unreachable code (#153973) This patch is forcing all values to be initialized by the LivenessAnalysis, even in dead blocks. The dataflow framework will skip visiting values when its already knows that a block is dynamically unreachable, so this requires specific handling. Downstream code could consider that the absence of liveness is the same a "dead". However as the code is mutated, new value can be introduced, and a transformation like "RemoveDeadValue" must conservatively consider that the absence of liveness information meant that we weren't sure if a value was dead (it could be a newly introduced value. Fixes #153906 | 11 个月前 | |
[mlir][test] Fix filecheck annotation typos (#92897) Moved fixes for mlir from https://github.com/llvm/llvm-project/pull/91854, plus few additional in second commit. --------- Co-authored-by: klensy <nightouser@gmail.com> | 2 年前 | |
Reland "[mlir] Add strided metadata range dataflow analysis" (#163403)" (#163408) This relands commit aa8499863ad23350da0912d99d189f306d0ea139. That commit was originally reverted because it caused failures in shared lib builds due to missing link dependencies. This patch relands the commit with the missing libs added. Signed-off-by: Fabian Mora <fabian.mora-cordero@amd.com> | 9 个月前 | |
[mlir] support non-interprocedural dataflow analyses (#75583) The core implementation of the dataflow anlysis framework is interpocedural by design. While this offers better analysis precision, it also comes with additional cost as it takes longer for the analysis to reach the fixpoint state. Add a configuration mechanism to the dataflow solver to control whether it operates inteprocedurally or not to offer clients a choice. As a positive side effect, this change also adds hooks for explicitly processing external/opaque function calls in the dataflow analyses, e.g., based off of attributes present in the the function declaration or call operation such as alias scopes and modref available in the LLVM dialect. This change should not affect existing analyses and the default solver configuration remains interprocedural. Co-authored-by: Jacob Peng <jacobmpeng@gmail.com> | 2 年前 |