Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Phabricator shutdown timeline

ayermolo (Alexander Yermolovich)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 25 2020, 4:03 PM (161 w, 3 d)

Recent Activity

Mon, Sep 18

ayermolo added a comment to D159526: [CodeLayout] Refactor std::vector uses, namespace, and EdgeCountT. NFC.

Isn't phabricator deprecated now, and all new reviews should be done on github?

Mon, Sep 18, 12:41 PM · Restricted Project, Restricted Project

Thu, Sep 7

ayermolo added a comment to D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.

@dblaikie ping. :) Do you want to continue review here or in github?

Thu, Sep 7, 10:16 AM · Restricted Project, Restricted Project

Wed, Sep 6

ayermolo added a comment to D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.

OK trying new workflow:
https://github.com/llvm/llvm-project/pull/65516

Wed, Sep 6, 11:53 AM · Restricted Project, Restricted Project

Fri, Sep 1

ayermolo added a comment to D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.

Also might be easier to explain to an "average" user "Just run llvm-dwarfdump --main-binary=<path_to_main_binary> --debug-info <path_to_dwo>" Vs Dump this DWO, look up DWOID (explain where it is in DWARF4 vs 5), then run llvm-dwarfdump again now with main binary with these flags.

Fri, Sep 1, 3:35 PM · Restricted Project, Restricted Project
ayermolo added a comment to D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.

Might be easier to go the other way, and when dumping the main binary, also dump associated dwo/dwp files? (Perhaps under a flag, or by default, not sure)

Fri, Sep 1, 2:20 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.

update from upstream branch

Fri, Sep 1, 1:38 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.

rebase

Fri, Sep 1, 1:34 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.

rebase

Fri, Sep 1, 1:14 PM · Restricted Project, Restricted Project
ayermolo added a reviewer for D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo: clayborg.
Fri, Sep 1, 1:13 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.

rebase

Fri, Sep 1, 12:53 PM · Restricted Project, Restricted Project
ayermolo updated the summary of D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.
Fri, Sep 1, 12:50 PM · Restricted Project, Restricted Project
ayermolo added a comment to D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.

Will add tests if the approach is acceptable.

Fri, Sep 1, 12:50 PM · Restricted Project, Restricted Project
ayermolo added a reviewer for D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo: dblaikie.
Fri, Sep 1, 12:49 PM · Restricted Project, Restricted Project
ayermolo updated the summary of D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.
Fri, Sep 1, 12:48 PM · Restricted Project, Restricted Project
ayermolo requested review of D159374: [llvm][dwarf][rfc][donotcommit] Enable print of ranges addresses from .debug_info.dwo.
Fri, Sep 1, 12:47 PM · Restricted Project, Restricted Project
ayermolo added a comment to D157459: Make DWARFContext more thread safe..

@dblaikie @bulbazord @JDevlieghere WDYT of this approach?
@clayborg One suggestion, maybe move EnableMultiThreading optional paramenter to the end of argument list? That way constructors in other projects don't need to be modified? Right now this will break LLD and BOLT builds.

Fri, Sep 1, 8:01 AM · Restricted Project, Restricted Project

Thu, Aug 31

ayermolo added a comment to D158689: [llvm-profdata] Use llvm::DenseMap in SampleProfileMap.

@weiwang Have you tried to generate a flame graph showing how much time each function takes?

I didn't collect this for the measurement. I think this change is pretty isolated to the loader pass, so if there is a win, it would show up in the e2e compilation.

I'll take a few cases and report back.

Thu, Aug 31, 9:42 AM · Restricted Project, Restricted Project

Aug 28 2023

ayermolo accepted D159014: [llvm-profdata] Use std::unordered_map in SampleProfileMap.

Tried locally to confirm and build of a module succeeds.
Thank you for fixing it.

Aug 28 2023, 2:36 PM · Restricted Project, Restricted Project
ayermolo added a comment to D158689: [llvm-profdata] Use llvm::DenseMap in SampleProfileMap.

@huangjd Do you think you will have time to change implementation to unordered_map as discussed by EOD, otherwise I am reverting the diff to unblock out validation testing.

Aug 28 2023, 7:34 AM · Restricted Project, Restricted Project

Aug 25 2023

ayermolo added a comment to D158689: [llvm-profdata] Use llvm::DenseMap in SampleProfileMap.

@huangjd can you follow up and change to unordered_map, so whole diff doesn't have to be reverted?

Aug 25 2023, 1:53 PM · Restricted Project, Restricted Project
ayermolo added a comment to D158689: [llvm-profdata] Use llvm::DenseMap in SampleProfileMap.

The proposal sounds good to me.

@wenlei, may I propose having this patch in first (to unblock) @ayermolo while we are discussing longer term strategy? Another benefit is that we can wait to see if there are other incidence (of using long lifetime reference) can show up so that we have more cases to consider the redesign (if needed).

Back-and-forth reverts/relands are costly and somewhat disruptive, I hope we can gain more confidence before reattempting. Here's my suggestion:

Step 1: use HashKeyMap<unordered_map, SampleContext, FunctionSamples> instead of HashKeyMap<DenseMap, SampleContext, FunctionSamples> for SampleProfileMap. It's a one line change to unblock.

Step 2: a separate patch to attempt DenseMap, coupled with all fixes needed. we can also help test correctness and performance on that change. actually the performance picture may not be that clear. reallocation is expensive, and the fact you didn't run into reallocation in your testing may indicate that the perf benchmark result may also be skewed. We also need to take into account the cost to update references etc.

WDYT?

Aug 25 2023, 10:55 AM · Restricted Project, Restricted Project
ayermolo added a comment to D158689: [llvm-profdata] Use llvm::DenseMap in SampleProfileMap.

@davidxl While discussion continues can the patch be reverted, or at least changed to unordered_map for now (preferably the former). It has been impacting our internal testing of trunk for a week now.

Aug 25 2023, 10:11 AM · Restricted Project, Restricted Project

Aug 24 2023

ayermolo added a comment to D158689: [llvm-profdata] Use llvm::DenseMap in SampleProfileMap.

DenseMap is significantly faster than std::unordered_map as previously used.

Benchmarking with an internal profile for production, when reading the function offset table alone, the original implementation (before D147740), DenseMap, and unordered_map takes 1.2, 0.78, 0.82 s respectively, and reading the full profiles takes 34.6, 29.0, 31.4 s respectively. That means using a std::unordered_map is 5-8% slower. (Meanwhile the refactoring itself has been very significant regardless of which container to use)

Aug 24 2023, 4:53 PM · Restricted Project, Restricted Project
ayermolo added a comment to D158689: [llvm-profdata] Use llvm::DenseMap in SampleProfileMap.

I think https://reviews.llvm.org/D147740 should be reverted and concerns addressed in that patch next re-land.

Aug 24 2023, 11:35 AM · Restricted Project, Restricted Project
ayermolo added a comment to D158689: [llvm-profdata] Use llvm::DenseMap in SampleProfileMap.

This does seem to fix memory corruption.
That being said I think I am with @wenlei on this. The implementation seems fragile as DenseMap, apparently, doesn't offer reference stability. Which leads to these kind of workarounds, and more then likely more issues down the road.

Aug 24 2023, 11:22 AM · Restricted Project, Restricted Project

Aug 23 2023

ayermolo added a comment to D147740: [llvm-profdata] Refactoring Sample Profile Reader to increase FDO build speed using MD5 as key to Sample Profile map.

What were you building when this error happened?

@huangjd

MSAN output. Does this ring any bells?

==3359553==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x564b193d7f4e in llvm::sampleprof::FunctionSamples::getHeadSamplesEstimate() const /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/ProfileData/SampleProf.h:959:30
    #1 0x564b193ce93a in llvm::sampleprof::ProfileConverter::flattenNestedProfile(llvm::sampleprof::SampleProfileMap&, llvm::sampleprof::FunctionSamples const&) /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/ProfileData/SampleProf.h:1612:36
    #2 0x564b193ce582 in llvm::sampleprof::ProfileConverter::flattenNestedProfile(llvm::sampleprof::SampleProfileMap&, llvm::sampleprof::FunctionSamples const&) /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/ProfileData/SampleProf.h:1607:9
    #3 0x564b193ca9cc in llvm::sampleprof::ProfileConverter::flattenProfile(llvm::sampleprof::SampleProfileMap const&, llvm::sampleprof::SampleProfileMap&, bool) /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/ProfileData/SampleProf.h:1558:9
    #4 0x564b1936a0f6 in (anonymous namespace)::SampleProfileMatcher::SampleProfileMatcher(llvm::Module&, llvm::sampleprof::SampleProfileReader&, llvm::PseudoProbeManager const*) /home/ayermolo/local/upstream-llvm/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:466:7
    #5 0x564b1936a0f6 in std::__1::__unique_if<(anonymous namespace)::SampleProfileMatcher>::__unique_single std::__1::make_unique[abi:v180000]<(anonymous namespace)::SampleProfileMatcher, llvm::Module&, llvm::sampleprof::SampleProfileReader&, llvm::PseudoProbeManager*>(llvm::Module&, llvm::sampleprof::SampleProfileReader&, llvm::PseudoProbeManager*&&) /home/ayermolo/local/upstream-llvm/llvm-project/build_libcxx/include/c++/v1/__memory/unique_ptr.h:685:30
    #6 0x564b1936a0f6 in (anonymous namespace)::SampleProfileLoader::doInitialization(llvm::Module&, llvm::AnalysisManager<llvm::Function>*) /home/ayermolo/local/upstream-llvm/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:2105:9
    #7 0x564b1936a0f6 in llvm::SampleProfileLoaderPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/ayermolo/local/upstream-llvm/llvm-project/llvm/lib/Transforms/IPO/SampleProfile.cpp:2632:21
    #8 0x564b18f338ac in llvm::detail::PassModel<llvm::Module, llvm::SampleProfileLoaderPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:89:17
    #9 0x564b12a1306b in llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/IR/PassManager.h:517:40
    #10 0x564b15b5e1a7 in (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream>>&, std::__1::unique_ptr<llvm::ToolOutputFile, std::__1::default_delete<llvm::ToolOutputFile>>&) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1101:9
    #11 0x564b15b447fd in (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream>>) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1158:3
    #12 0x564b15b447fd in clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::__1::unique_ptr<llvm::raw_pwrite_stream, std::__1::default_delete<llvm::raw_pwrite_stream>>) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1321:13
    #13 0x564b16f72ca1 in clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:386:7
    #14 0x564b1d01a29b in clang::ParseAST(clang::Sema&, bool, bool) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseAST.cpp:176:13
    #15 0x564b16be4f7e in clang::FrontendAction::Execute() /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1063:8
    #16 0x564b1695cd8d in clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1054:33
    #17 0x564b16f50383 in clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:272:25
    #18 0x564b0f3bb128 in cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/tools/driver/cc1_main.cpp:249:15
    #19 0x564b0f3b0d6a in ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /home/ayermolo/local/upstream-llvm/llvm-project/clang/tools/driver/driver.cpp:366:12
    #20 0x564b0f3abb78 in clang_main(int, char**, llvm::ToolContext const&) /home/ayermolo/local/upstream-llvm/llvm-project/clang/tools/driver/driver.cpp:407:12
    #21 0x564b0f3ec39c in main /home/ayermolo/local/llvm-build-upstream-msan-release/tools/clang/tools/driver/clang-driver.cpp:15:10
    #22 0x7f73e6a3ad84 in __libc_start_main (/lib64/libc.so.6+0x3ad84) (BuildId: 1356e140fb964a20b0d2838960ee69ca6faeb034)
    #23 0x564b0f31642d in _start (/data/users/ayermolo/llvm-build-upstream-msan-release/bin/clang-18+0x315042d)

  Uninitialized value was created by a heap deallocation
    #0 0x564b0f3a2269 in operator delete(void*, std::align_val_t) /home/ayermolo/local/upstream-llvm/llvm-project/compiler-rt/lib/msan/msan_new_delete.cpp:90:3
    #1 0x564b193d94e5 in llvm::DenseMapBase<llvm::DenseMap<llvm::hash_code, llvm::sampleprof::FunctionSamples, llvm::DenseMapInfo<llvm::hash_code, void>, llvm::detail::DenseMapPair<llvm::hash_code, llvm::sampleprof::FunctionSamples>>, llvm::hash_code, llvm::sampleprof::FunctionSamples, llvm::DenseMapInfo<llvm::hash_code, void>, llvm::detail::DenseMapPair<llvm::hash_code, llvm::sampleprof::FunctionSamples>>::grow(unsigned int) /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/ADT/DenseMap.h:564:36
    #2 0x564b193d94e5 in llvm::detail::DenseMapPair<llvm::hash_code, llvm::sampleprof::FunctionSamples>* llvm::DenseMapBase<llvm::DenseMap<llvm::hash_code, llvm::sampleprof::FunctionSamples, llvm::DenseMapInfo<llvm::hash_code, void>, llvm::detail::DenseMapPair<llvm::hash_code, llvm::sampleprof::FunctionSamples>>, llvm::hash_code, llvm::sampleprof::FunctionSamples, llvm::DenseMapInfo<llvm::hash_code, void>, llvm::detail::DenseMapPair<llvm::hash_code, llvm::sampleprof::FunctionSamples>>::InsertIntoBucketImpl<llvm::hash_code>(llvm::hash_code const&, llvm::hash_code const&, llvm::detail::DenseMapPair<llvm::hash_code, llvm::sampleprof::FunctionSamples>*) /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/ADT/DenseMap.h
    #3 0x564b193d94e5 in llvm::detail::DenseMapPair<llvm::hash_code, llvm::sampleprof::FunctionSamples>* llvm::DenseMapBase<llvm::DenseMap<llvm::hash_code, llvm::sampleprof::FunctionSamples, llvm::DenseMapInfo<llvm::hash_code, void>, llvm::detail::DenseMapPair<llvm::hash_code, llvm::sampleprof::FunctionSamples>>, llvm::hash_code, llvm::sampleprof::FunctionSamples, llvm::DenseMapInfo<llvm::hash_code, void>, llvm::detail::DenseMapPair<llvm::hash_code, llvm::sampleprof::FunctionSamples>>::InsertIntoBucket<llvm::hash_code const&, llvm::sampleprof::FunctionSamples const&>(llvm::detail::DenseMapPair<llvm::hash_code, llvm::sampleprof::FunctionSamples>*, llvm::hash_code const&, llvm::sampleprof::FunctionSamples const&) /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/ADT/DenseMap.h:574:17

SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/ProfileData/SampleProf.h:959:30 in llvm::sampleprof::FunctionSamples::getHeadSamplesEstimate() const
Exiting
Aug 23 2023, 2:28 PM · Restricted Project, Restricted Project

Aug 22 2023

ayermolo added a comment to D147740: [llvm-profdata] Refactoring Sample Profile Reader to increase FDO build speed using MD5 as key to Sample Profile map.

MSAN output. Does this ring any bells?

Aug 22 2023, 3:00 PM · Restricted Project, Restricted Project

Aug 21 2023

ayermolo added a comment to D147740: [llvm-profdata] Refactoring Sample Profile Reader to increase FDO build speed using MD5 as key to Sample Profile map.

This diff is causing clang to crash on one of our builds, when clang is linked with jemalloc.
-DCMAKE_EXE_LINKER_FLAGS="-L /usr/lib64 -Wl,-rpath,/usr/lib64 -ljemalloc" \

Aug 21 2023, 5:42 PM · Restricted Project, Restricted Project
ayermolo added a comment to D157061: [SampleProfile] Potential use after move in SampleProfileLoader::promoteMergeNotInlinedContextSamples.
Aug 21 2023, 4:50 PM · Restricted Project, Restricted Project

Aug 17 2023

ayermolo added a comment to D157459: Make DWARFContext more thread safe..

I am somewhat confused about how this is a performance regression. Doesn't sound like it currently working in multi threaded environment anyway. If it is implemented as is, I don't believe most tools that process debug information are multi threaded, and even if they are majority of time is spent actually parsing debug information.

Aug 17 2023, 3:31 PM · Restricted Project, Restricted Project
ayermolo accepted D157669: Fix spurious errors that would be emitted when DW_TAG_subprogram DIEs had mutliple ranges in DW_AT_ranges..
Aug 17 2023, 1:51 PM · Restricted Project, Restricted Project

Aug 14 2023

ayermolo committed rG2c784f7d2685: [BOLT][DWARF] Fix handling of invalid DIE references (authored by ayermolo).
[BOLT][DWARF] Fix handling of invalid DIE references
Aug 14 2023, 5:29 PM · Restricted Project
ayermolo closed D157746: [BOLT][DWARF] Fix handling of invalid DIE references.
Aug 14 2023, 5:28 PM · Restricted Project, Restricted Project
ayermolo committed rGbce5743e2190: [BOLT][DWARF] Fix location list order (authored by ayermolo).
[BOLT][DWARF] Fix location list order
Aug 14 2023, 5:27 PM · Restricted Project
ayermolo closed D157908: [BOLT][DWARF] Fix location list order.
Aug 14 2023, 5:27 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D157746: [BOLT][DWARF] Fix handling of invalid DIE references.

addressed comments

Aug 14 2023, 4:44 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D157908: [BOLT][DWARF] Fix location list order.

cleaned up dwarf5-loclist.s

Aug 14 2023, 4:32 PM · Restricted Project, Restricted Project
ayermolo updated the summary of D157908: [BOLT][DWARF] Fix location list order.
Aug 14 2023, 3:37 PM · Restricted Project, Restricted Project
ayermolo retitled D157746: [BOLT][DWARF] Fix handling of invalid DIE references from [BOLT][DWARF][NFC] Fix handling of invalid DIE references to [BOLT][DWARF] Fix handling of invalid DIE references.
Aug 14 2023, 11:43 AM · Restricted Project, Restricted Project
ayermolo updated the diff for D157908: [BOLT][DWARF] Fix location list order.

fixed nit

Aug 14 2023, 11:42 AM · Restricted Project, Restricted Project
ayermolo requested review of D157908: [BOLT][DWARF] Fix location list order.
Aug 14 2023, 11:40 AM · Restricted Project, Restricted Project

Aug 11 2023

ayermolo added a comment to D157459: Make DWARFContext more thread safe..

Not sure how I feel about adding multithreading at this level, versus in a wrapper API for those that need it? (insert an interface (DWARFContext, then rename the current concrete implementation as DWARFContextImpl) then have a ThreadSafeDWARFContext that wraps (either as a template, or with a unique_ptr<DWARFContext> member) another DWARFContext and adds the locking) Though it's probably not the end of the world to add it here directly.

Can probably use Class Template Argument Deduction when locking, like this:

std::unique_lock LockGuard(Mutex);

Is there a downside just adding it here, instead of adding complexity of another class and wrapper APIs?

Nothing drastic that I can think of - though perhaps a more vague "DWARFContext is already... not great (exactly which entry points you should use when, what guarantees they provide, when you need to parse things up-front versus lazily, how the memory is managed (mostly it just grows unbounded for instance/never gets cleaned up short of throwing the whole context away) and I worry that trying to figure out when/where multithreaded use is valid or not will add another dimension on an already uncertain and complex interface". But it's probably not the straw that breaks the camel's back, as it were - and adding a wrapper isn't really going to fix the underlying problems/make them especially easier to fix (it's probably a fairly broad rewrite at some point).

Aug 11 2023, 12:43 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D157746: [BOLT][DWARF] Fix handling of invalid DIE references.

Fixed dwarf version in commands

Aug 11 2023, 12:00 PM · Restricted Project, Restricted Project
ayermolo requested review of D157746: [BOLT][DWARF] Fix handling of invalid DIE references.
Aug 11 2023, 11:54 AM · Restricted Project, Restricted Project

Aug 10 2023

ayermolo added a comment to D157459: Make DWARFContext more thread safe..

Not sure how I feel about adding multithreading at this level, versus in a wrapper API for those that need it? (insert an interface (DWARFContext, then rename the current concrete implementation as DWARFContextImpl) then have a ThreadSafeDWARFContext that wraps (either as a template, or with a unique_ptr<DWARFContext> member) another DWARFContext and adds the locking) Though it's probably not the end of the world to add it here directly.

Can probably use Class Template Argument Deduction when locking, like this:

std::unique_lock LockGuard(Mutex);
Aug 10 2023, 9:40 PM · Restricted Project, Restricted Project

Aug 9 2023

ayermolo accepted D156834: Remove some noisy log messages from showing up in llvm-gsymutil output..

Does this need a test?

Aug 9 2023, 7:53 AM · Restricted Project, Restricted Project

Aug 8 2023

ayermolo accepted D157466: Improve llvm-gsymutil performance in quiet mode..
Aug 8 2023, 6:37 PM · Restricted Project, Restricted Project
ayermolo committed rG43fe9dcb713c: [BOLT][DWARF][NFC] Remove addIndexAddress (authored by ayermolo).
[BOLT][DWARF][NFC] Remove addIndexAddress
Aug 8 2023, 6:23 PM · Restricted Project
ayermolo closed D157357: [BOLT][DWARF][NFC] Remove addIndexAddress.
Aug 8 2023, 6:23 PM · Restricted Project, Restricted Project
ayermolo committed rG55a1d959a5e9: [BOLT][DWARF] Always use new low_pc for call_site (authored by ayermolo).
[BOLT][DWARF] Always use new low_pc for call_site
Aug 8 2023, 6:22 PM · Restricted Project
ayermolo closed D157356: [BOLT][DWARF] Always use new low_pc for call_site.
Aug 8 2023, 6:21 PM · Restricted Project, Restricted Project
ayermolo committed rG96cfc5f8404a: [BOLT][DWARF] Always use new low_pc for exprloc (authored by ayermolo).
[BOLT][DWARF] Always use new low_pc for exprloc
Aug 8 2023, 6:20 PM · Restricted Project
ayermolo closed D157355: [BOLT][DWARF] Always use new low_pc for exprloc.
Aug 8 2023, 6:20 PM · Restricted Project, Restricted Project
ayermolo committed rG9ffdc2b45712: [BOLT][DWARF][NFC] Add function to print DIE (authored by ayermolo).
[BOLT][DWARF][NFC] Add function to print DIE
Aug 8 2023, 6:19 PM · Restricted Project
ayermolo closed D157354: [BOLT][DWARF][NFC] Add function to print DIE.
Aug 8 2023, 6:18 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D157355: [BOLT][DWARF] Always use new low_pc for exprloc.

addressed comments

Aug 8 2023, 4:44 PM · Restricted Project, Restricted Project
ayermolo added inline comments to D157355: [BOLT][DWARF] Always use new low_pc for exprloc.
Aug 8 2023, 4:25 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D157354: [BOLT][DWARF][NFC] Add function to print DIE.

addressed comments

Aug 8 2023, 4:03 PM · Restricted Project, Restricted Project

Aug 7 2023

ayermolo added a comment to D157357: [BOLT][DWARF][NFC] Remove addIndexAddress.

Depends on
https://reviews.llvm.org/D157355
https://reviews.llvm.org/D157356

Aug 7 2023, 8:35 PM · Restricted Project, Restricted Project
ayermolo requested review of D157357: [BOLT][DWARF][NFC] Remove addIndexAddress.
Aug 7 2023, 8:33 PM · Restricted Project, Restricted Project
ayermolo requested review of D157356: [BOLT][DWARF] Always use new low_pc for call_site.
Aug 7 2023, 8:33 PM · Restricted Project, Restricted Project
ayermolo requested review of D157355: [BOLT][DWARF] Always use new low_pc for exprloc.
Aug 7 2023, 8:32 PM · Restricted Project, Restricted Project
ayermolo requested review of D157354: [BOLT][DWARF][NFC] Add function to print DIE.
Aug 7 2023, 8:31 PM · Restricted Project, Restricted Project

Aug 3 2023

ayermolo committed rGe1ceae4b6039: [BOLT][DWARF] Fix setting DW_AT_ranges offset of Skeleton CU (authored by ayermolo).
[BOLT][DWARF] Fix setting DW_AT_ranges offset of Skeleton CU
Aug 3 2023, 10:35 AM · Restricted Project
ayermolo closed D156958: [BOLT][DWARF] Fix setting DW_AT_ranges offset of Skeleton CU.
Aug 3 2023, 10:34 AM · Restricted Project, Restricted Project
ayermolo committed rGefb8a1c90629: [BOLT][DWARF] Delete DW_AT_low_pc when converting to ranges (authored by ayermolo).
[BOLT][DWARF] Delete DW_AT_low_pc when converting to ranges
Aug 3 2023, 10:34 AM · Restricted Project
ayermolo closed D156957: [BOLT][DWARF] Delete DW_AT_low_pc when converting to ranges.
Aug 3 2023, 10:33 AM · Restricted Project, Restricted Project
ayermolo updated the diff for D156958: [BOLT][DWARF] Fix setting DW_AT_ranges offset of Skeleton CU.

Restored formating in rest of the file

Aug 3 2023, 7:57 AM · Restricted Project, Restricted Project
ayermolo updated the diff for D156958: [BOLT][DWARF] Fix setting DW_AT_ranges offset of Skeleton CU.

rebase

Aug 3 2023, 7:49 AM · Restricted Project, Restricted Project
ayermolo updated the diff for D156958: [BOLT][DWARF] Fix setting DW_AT_ranges offset of Skeleton CU.

addressed comments

Aug 3 2023, 7:47 AM · Restricted Project, Restricted Project
ayermolo retitled D156957: [BOLT][DWARF] Delete DW_AT_low_pc when converting to ranges from [BOLT][DWARF] Delete DW_AT_low_pc when converting to ranges. to [BOLT][DWARF] Delete DW_AT_low_pc when converting to ranges.
Aug 3 2023, 7:35 AM · Restricted Project, Restricted Project
ayermolo retitled D156958: [BOLT][DWARF] Fix setting DW_AT_ranges offset of Skeleton CU from [BOLT][DWARF] Fix handling CU with DW_AT_ranges to [BOLT][DWARF] Fix setting DW_AT_ranges offset of Skeleton CU.
Aug 3 2023, 7:28 AM · Restricted Project, Restricted Project
ayermolo added inline comments to D156958: [BOLT][DWARF] Fix setting DW_AT_ranges offset of Skeleton CU.
Aug 3 2023, 7:06 AM · Restricted Project, Restricted Project

Aug 2 2023

ayermolo requested review of D156958: [BOLT][DWARF] Fix setting DW_AT_ranges offset of Skeleton CU.
Aug 2 2023, 6:00 PM · Restricted Project, Restricted Project
ayermolo requested review of D156957: [BOLT][DWARF] Delete DW_AT_low_pc when converting to ranges.
Aug 2 2023, 5:59 PM · Restricted Project, Restricted Project

Jul 31 2023

ayermolo committed rG1713f8498348: [BOLT][DWARF] Opt out test from aarch64 (authored by ayermolo).
[BOLT][DWARF] Opt out test from aarch64
Jul 31 2023, 6:23 PM · Restricted Project
ayermolo closed D156765: [BOLT][DWARF] Opt out test from aarch64.
Jul 31 2023, 6:23 PM · Restricted Project, Restricted Project
ayermolo retitled D156765: [BOLT][DWARF] Opt out test from aarch64 from [BOLT][DWARF] Opt out test from aarch64. to [BOLT][DWARF] Opt out test from aarch64.
Jul 31 2023, 6:21 PM · Restricted Project, Restricted Project
ayermolo requested review of D156765: [BOLT][DWARF] Opt out test from aarch64.
Jul 31 2023, 5:44 PM · Restricted Project, Restricted Project
ayermolo committed rG9eb0df3aa98e: [BOLT][DWARF] Fix handling of inlined subroutine with no output PC (authored by ayermolo).
[BOLT][DWARF] Fix handling of inlined subroutine with no output PC
Jul 31 2023, 5:13 PM · Restricted Project
ayermolo closed D156742: [BOLT][DWARF] Fix handling of inlined subroutine with no output PC.
Jul 31 2023, 5:13 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D156742: [BOLT][DWARF] Fix handling of inlined subroutine with no output PC.

added how gc assembly files were generated

Jul 31 2023, 4:42 PM · Restricted Project, Restricted Project
ayermolo retitled D156742: [BOLT][DWARF] Fix handling of inlined subroutine with no output PC from [BOLT][DWARF] Fix handling inlined subroutine with no output pc. to [BOLT][DWARF] Fix handling of inlined subroutine with no output PC.
Jul 31 2023, 4:08 PM · Restricted Project, Restricted Project
ayermolo added inline comments to D156742: [BOLT][DWARF] Fix handling of inlined subroutine with no output PC.
Jul 31 2023, 4:02 PM · Restricted Project, Restricted Project
ayermolo added inline comments to D156742: [BOLT][DWARF] Fix handling of inlined subroutine with no output PC.
Jul 31 2023, 3:52 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D156742: [BOLT][DWARF] Fix handling of inlined subroutine with no output PC.

Added test, addressed comments.

Jul 31 2023, 3:49 PM · Restricted Project, Restricted Project
ayermolo added inline comments to D156742: [BOLT][DWARF] Fix handling of inlined subroutine with no output PC.
Jul 31 2023, 2:33 PM · Restricted Project, Restricted Project
ayermolo requested review of D156742: [BOLT][DWARF] Fix handling of inlined subroutine with no output PC.
Jul 31 2023, 2:09 PM · Restricted Project, Restricted Project

Jul 30 2023

ayermolo committed rG75f770a68f70: [BOLT][DWARF] Update handling of size 1 ranges and fix sub-programs with ranges (authored by ayermolo).
[BOLT][DWARF] Update handling of size 1 ranges and fix sub-programs with ranges
Jul 30 2023, 5:33 PM · Restricted Project
ayermolo closed D156374: [BOLT][DWARF] Update handling of size 1 ranges and fix sub-programs with ranges.
Jul 30 2023, 5:33 PM · Restricted Project, Restricted Project
ayermolo retitled D156374: [BOLT][DWARF] Update handling of size 1 ranges and fix sub-programs with ranges from [BOLT][DWARF] Update how ranges for size 1 are handled, and fix handling of sub-program with ranges to [BOLT][DWARF] Update handling of size 1 ranges and fix sub-programs with ranges.
Jul 30 2023, 1:15 PM · Restricted Project, Restricted Project
ayermolo updated the diff for D156374: [BOLT][DWARF] Update handling of size 1 ranges and fix sub-programs with ranges.

updated warning check

Jul 30 2023, 1:13 PM · Restricted Project, Restricted Project

Jul 28 2023

ayermolo updated the diff for D156374: [BOLT][DWARF] Update handling of size 1 ranges and fix sub-programs with ranges.

addressed some of the comments

Jul 28 2023, 3:17 PM · Restricted Project, Restricted Project
ayermolo retitled D156374: [BOLT][DWARF] Update handling of size 1 ranges and fix sub-programs with ranges from [BOLT][DWARF] Don't convert low_pc/high_pc to ranges for size 1, and fix handling of sub-program with ranges to [BOLT][DWARF] Update how ranges for size 1 are handled, and fix handling of sub-program with ranges.
Jul 28 2023, 2:44 PM · Restricted Project, Restricted Project
ayermolo updated the summary of D156374: [BOLT][DWARF] Update handling of size 1 ranges and fix sub-programs with ranges.
Jul 28 2023, 2:44 PM · Restricted Project, Restricted Project
ayermolo added inline comments to D156374: [BOLT][DWARF] Update handling of size 1 ranges and fix sub-programs with ranges.
Jul 28 2023, 2:43 PM · Restricted Project, Restricted Project

Jul 26 2023

ayermolo requested review of D156374: [BOLT][DWARF] Update handling of size 1 ranges and fix sub-programs with ranges.
Jul 26 2023, 2:50 PM · Restricted Project, Restricted Project

Jul 20 2023

ayermolo added a comment to D155874: [llvm][SLP] Exit early if inputs to comparator are equal.

I don't remember anything about this code. :)
Can you add a test, and I guess this was submitted through web UI, can you do it with -999 so surrounding code can be viewed?

Jul 20 2023, 11:55 AM · Restricted Project, Restricted Project
ayermolo committed rGf52e61f3d37b: [BOLT][DWARF] Replace MD5 with hash_combine (authored by ayermolo).
[BOLT][DWARF] Replace MD5 with hash_combine
Jul 20 2023, 11:51 AM · Restricted Project
ayermolo closed D155764: [BOLT][DWARF] Replace MD5 with hash_combine.
Jul 20 2023, 11:51 AM · Restricted Project, Restricted Project