This is an archive of the discontinued LLVM Phabricator instance.

[PM] Add a SpeculativeExecution pass for targets with divergent branches.
ClosedPublic

Authored by jlebar on Mar 30 2016, 2:46 PM.

Details

Summary

This IR pass is helpful for GPUs, and other targets with divergent
branches. It's a nop on targets without divergent branches.

Diff Detail

Repository
rL LLVM

Event Timeline

jlebar updated this revision to Diff 52131.Mar 30 2016, 2:46 PM
jlebar retitled this revision from to [PM] Add a SpeculativeExecution pass for targets with divergent branches..
jlebar updated this object.
jlebar added a reviewer: chandlerc.
jlebar added subscribers: tra, rnk, jingyue, llvm-commits.
mehdi_amini added inline comments.Mar 30 2016, 3:31 PM
lib/Transforms/IPO/PassManagerBuilder.cpp
238 ↗(On Diff #52131)

Where is it defined? I can't find in my tree.

mehdi_amini added inline comments.
lib/Transforms/IPO/PassManagerBuilder.cpp
238 ↗(On Diff #52131)

Found D18625 (added as dependency for this patch)

tra added inline comments.Mar 30 2016, 3:32 PM
lib/Transforms/IPO/PassManagerBuilder.cpp
238 ↗(On Diff #52131)
chandlerc accepted this revision.Apr 7 2016, 12:33 AM
chandlerc edited edge metadata.

I've suggested merging this into D18625 but if you decide not to, this LGTM.

This revision is now accepted and ready to land.Apr 7 2016, 12:33 AM
This revision was automatically updated to reflect the committed changes.