This is an archive of the discontinued LLVM Phabricator instance.

Add optimization bisect opt-in calls for AArch64 passes
ClosedPublic

Authored by andrew.w.kaylor on Apr 21 2016, 3:52 PM.

Details

Summary

This patch adds calls to AArch64 passes that can be safely skipped to opt-in to the optimization bisect mechanism.

Note that the call to skipFunction() will also check for the "optnone" function attribute, so this can theoretically result in passes being skipped even when optimization bisect is not being done. However, I believe that any pass that can be safely skipped should be skipped for functions with the optnone attribute.

Diff Detail

Repository
rL LLVM

Event Timeline

andrew.w.kaylor retitled this revision from to Add optimization bisect opt-in calls for AArch64 passes.
andrew.w.kaylor updated this object.
andrew.w.kaylor added a reviewer: t.p.northover.
andrew.w.kaylor set the repository for this revision to rL LLVM.
andrew.w.kaylor added a subscriber: llvm-commits.
rengolin accepted this revision.Apr 23 2016, 6:06 AM
rengolin added a reviewer: rengolin.

With the same constraints as the ARM version (only for debug purposes), LGTM, too.

This revision is now accepted and ready to land.Apr 23 2016, 6:06 AM

With the same constraints as the ARM version (only for debug purposes), LGTM, too.

The optnone aspect is controlled in the source via a pragma or attribute. Does that change your opinion?

The optnone aspect is controlled in the source via a pragma or attribute. Does that change your opinion?

Pragmas are user intentions in writing, so one way or another, this removes the possibility of users being surprised by erratic compiler behaviour, which is what I was worried about.

Or is there something else I'm missing?

The optnone aspect is controlled in the source via a pragma or attribute. Does that change your opinion?

Pragmas are user intentions in writing, so one way or another, this removes the possibility of users being surprised by erratic compiler behaviour, which is what I was worried about.

Or is there something else I'm missing?

When you say "only for debug purposes" do you mean debugging the compiler, or end-users doing something in their application? Generally bisection is for the former, attribute optnone is for the latter (generally as a tactic to help debug the application, not the compiler).

This revision was automatically updated to reflect the committed changes.