[all-commits] [llvm/llvm-project] d2cc6c: Use a sorted array instead of a map to store AttrB...

serge-sans-paille via All-commits all-commits at lists.llvm.org
Mon Jan 10 05:50:11 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d2cc6c2d0c2f8a6e272110416a3fd579ed5a3ac1
      https://github.com/llvm/llvm-project/commit/d2cc6c2d0c2f8a6e272110416a3fd579ed5a3ac1
  Author: Serge Guelton <sguelton at redhat.com>
  Date:   2022-01-10 (Mon, 10 Jan 2022)

  Changed paths:
    M clang/lib/CodeGen/CGAtomic.cpp
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/TargetInfo.cpp
    M llvm/include/llvm/CodeGen/IndirectThunks.h
    M llvm/include/llvm/IR/Attributes.h
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/CodeGen/Analysis.cpp
    M llvm/lib/CodeGen/CommandFlags.cpp
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/IR/Attributes.cpp
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/IR/Function.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    M llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
    M llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
    M llvm/lib/Transforms/Utils/InlineFunction.cpp
    M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
    M llvm/tools/bugpoint/CrashDebugger.cpp
    M llvm/tools/llvm-reduce/deltas/ReduceAttributes.cpp
    M llvm/unittests/ExecutionEngine/Orc/IndirectionUtilsTest.cpp
    M llvm/unittests/IR/AttributesTest.cpp
    M llvm/unittests/IR/InstructionsTest.cpp
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp

  Log Message:
  -----------
  Use a sorted array instead of a map to store AttrBuilder string attributes

Using and std::map<SmallString, SmallString> for target dependent attributes is
inefficient: it makes its constructor slightly heavier, and involves extra
allocation for each new string attribute. Storing the attribute key/value as
strings implies extra allocation/copy step.

Use a sorted vector instead. Given the low number of attributes generally
involved, this is cheaper, as showcased by

https://llvm-compile-time-tracker.com/compare.php?from=5de322295f4ade692dc4f1823ae4450ad3c48af2&to=05bc480bf641a9e3b466619af43a2d123ee3f71d&stat=instructions

Differential Revision: https://reviews.llvm.org/D116599




More information about the All-commits mailing list