Skip to content

Test PFA and document issues with Clang-19/20 versions #191

Closed

Description

@tpatki
No description provided.

Activity

  1. added this to the Release 0.2.0 milestone on May 22, 2025
  2. self-assigned this
    on May 22, 2025
  3. asantagata commented on Oct 21, 2025

    @asantagata
    Contributor

    @spencer-gre and I experienced no issues running PFA on Clang-19. On Clang-20 there were several issues; here is a log of these on Tuo: pfa clang20 errors.txt

    We made these changes (forked here) to PFA for successful run on Clang-20:

    • Replaced every instance of createGlobalStringPtr in weaver/weave/perfflow_weave_common with createGlobalString. createGlobalStringPtr is deprecated as of Clang 20 and acts as a reference to createGlobalString which has a more generic type (https://llvm.org/doxygen/IRBuilder_8h_source.html#l02056); functionality is identical.

    • In perfflow_weave_new_pass, replaced this block:

            PB.registerPipelineEarlySimplificationEPCallback(
                [&](ModulePassManager & MPM, auto)
            {
                MPM.addPass(NewWeavingPass());
                return true;
            }
            );

    with this:

            PB.registerPipelineEarlySimplificationEPCallback(
                [&](ModulePassManager & MPM, OptimizationLevel OL, ThinOrFullLTOPhase TOFLTOP)
            {
                MPM.addPass(NewWeavingPass());
            }
            );

    i.e., adding another parameter and removing the return to match the definition listed here: https://llvm.org/doxygen/llvm_2Passes_2PassBuilder_8h_source.html#l00505

    With these changes, compilation is successful and all smoketests work.

  4. tpatki commented on Oct 29, 2025

    @tpatki
    MemberAuthor

    Closing with PR #199 and #200

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions