User Details
- User Since
- Jan 5 2016, 3:55 PM (376 w, 20 h)
Feb 16 2023
Thanks for working on this. You mentioned
This patch changes the behavior of decodeBBAddrMap to trace through relocations to get correct function addresses if it is going through a relocatable object file."
How is this achieved? Each BBAddrMap section has a corresponding .rela section, but that .rela section does not contain real address information (the addresses are only known at linker time). (Most of the time) It has entries of <offset_into_bbaddrmap_section, ".text", addend>. Are you computing function addresses as ".text address as exhibited in the object file + addend"?
Feb 8 2023
LGTM
May 23 2022
LGTM
May 13 2022
May 12 2022
Here is the proposed workflow to build a propeller optimized clang binary (similar to PGO build).
- Build instrumented clang binary:
cmake -G Ninja ... -DLLVM_BUILD_INSTRUMENTED=BBLabels ... llvm-project/llvm
ninja build
May 11 2022
May 4 2022
This looks good to me. One question, do we have a rough idea, what is the percentage of functions that pgo and propeller disagree about their hotness?
Oct 28 2021
One question, is "BBAddrMap" (or "ELF_BBAddrMap" in the origin code) only used to carry return values? You mentioned the section size won't change (for both ELF32 and ELF64), is it because you do not use this structure for writing out to ELF section?
Mar 11 2021
Thanks for making the change.
Oct 29 2020
Oct 22 2020
Oct 21 2020
Sep 8 2020
Hi Maskray, thanks for the fix. Another latent concern is that apply the symbol ordering file unconditionally might cause unintentional consequence to the final binary to the extent that the binary might be corrupted or less optimized, in this sense, this patch might still be warranted (orthogonal to your CL), what do you think?
Sep 4 2020
Hi Fangrui, I've put up a reproduce case for mysql here. These are steps:
Sep 3 2020
Sep 2 2020
Jul 20 2020
May 5 2020
Feb 18 2020
Hi, would you to take another look? Thanks, -Han
Feb 7 2020
Thanks Rui. Uploaded the patch: 1) removed PropellerConfig 2). Removed PropellerCommon.h from patch (and moved it into llvm realm).
Feb 6 2020
Feb 4 2020
Fixed all variable names to comply with lld naming convention.
Jan 31 2020
Hi Markray, thanks for the review.
Jan 30 2020
Jan 27 2020
Jan 17 2020
Hello, over the past 2 months since our first draft of Propeller, we've made huge changes/improvements and this describes what happens -http://lists.llvm.org/pipermail/llvm-dev/2020-January/138426.html
Jan 16 2020
Nov 21 2019
Added lld/ELF/Propeller/README.md. Moved some of file comments into README.md.
Nov 12 2019
Hi, we've refactored propeller and cleaned up dependencies and interfaces. Here are the change summaries:
Oct 8 2019
Oct 4 2019
Oct 3 2019
Oct 2 2019
Oct 1 2019
Sep 30 2019
Sep 27 2019
Updated header file description. Also changed local variable names to lower case camel.
Sep 26 2019
Addressed maskray's comments.
Sep 25 2019
Jun 6 2018
@ruiu whatś your opinion on this?
Jun 5 2018
Re-write the getAlignment function, keep the original logic but with the 3 additional tests:
Mind take another look?
Jun 1 2018
@pcc thanks for the review. Updated the patch -
- if getAlignment sees a ABS symbols, returns 0
- initialize Ret to UINT64_MAX
- in "addCopyRelSymbol", errors out if alignment is 0.
- unit test case that tests for proper handling of ABS symbols.
May 31 2018
Thanks @ruiu Updated the patch, also attached a test case.
@pcc do you agree with initializing Ret to uint64-1?
Thanks Rui. I just updated the patch a little bit, that - st_value is only valid for alignment when symbol shndx is set to SHN_COMMON.
May 25 2018
May 17 2018
Thanks. (Comments revised and DefaoutOutSec -> Default)