- User Since
- Jul 30 2019, 2:02 PM (44 w, 2 d)
Apr 13 2020
Re-uploading the diff since I missed test files in the latest update.
Apr 11 2020
Apr 10 2020
The major change with this is a new struct called MBBSectionID to represent the basic block section IDs instead of a plain integer.
This makes the code cleaner (especially for the upcoming CFI and DebugInfo patches).
Apr 8 2020
Thanks a lot for your insightful comments @eli.friedman. I think removing the hasBBSections() calls from AsmPrinter.cpp has made the code a lot better.
The major change in this diff is removing all "MF->hasBBSections()" calls from AsmPrinter.cpp per @eli.friedman 's suggestion.
Refactoring the size directive emission for basic block symbols. Merging the function getNamedSectionForMachineBasicBlock into getSectionForMachineBasicBlock. Re-allowing the emission of basic block alignment for BBSections. Removing the duplicate assignBeginEndSection from MIRParser and declaring it as an external function defined in BBSectionsPrepare.cpp.
Apr 7 2020
@efriedma Would you please take a look at this patch? Any feedback is appreciated.
Apr 3 2020
Handled all of @tmsriram 's 3rd round of comments.
Moved assignBeginEndSections to BBSectionsPrepare.cpp and MIRParser.cpp.
Apr 2 2020
Addressed @tmsriram 's second round of comments.
Addressed @tmsriram 's second round of comments.
Apr 1 2020
Finished addressing one more @tmsriram 's suggestion involving redundant insertion of explicit fallthrough branches.
The major change int this update is the ability of "not inserting unconditional branches" when fallthrough block hasn't moved.
Mar 31 2020
Thanks a lot for the comments @tmsriram . I managed to get most of them addressed (Most importantly the one about nested maps).
Major changes with this update:
1- Using a StringMap of vectors instead of nested map in getBBClusterInfo (BBSectionsPrepare.cpp). 2- Structured error handling in getBBClusterInfo. 3- New basicblock-section-clusters tests exercising various combinations of clustering (involving exception handling blocks and cold code), add ensuring that branches are optimized/inserted at the right places.
Mar 27 2020
Added a test for bb-cluster sections: llvm/test/CodeGen/X86/basicblock-sections-clusters.ll
Feb 27 2020
Feb 14 2020
Feb 11 2020
Feb 6 2020
This update changes the offset field to signed integer.
Feb 5 2020
This update changes class variable names to camelCase.
Jan 31 2020
This update mainly changes the floating point variables in the code layout parameters to integers. 20% speedup is achieved by this.
Jan 30 2020
Remove the redundant else after return + sync in the changes in the parent patch.
Jan 24 2020
This update moves all the code layout optimizations under lld/ELF/Propeller/CodeLayout.
Jan 23 2020
This update simplifies the update of chain and offset mapping after merging a new chain.
Affected file: PropellerNodeChainBuilder.cpp
Jan 21 2020
We have made major changes to the Propeller since the last update. The changes are documented here: http://lists.llvm.org/pipermail/llvm-dev/2020-January/138426.html
Oct 8 2019
This update addresses previous comments from @ruiu.
Most importantly, it removes the propeller-align-basic-block functionality since it is not fit with the current code. I will add this functionality in a later patch.
Oct 2 2019
This update adds one more test which exercises the different flavors of layout optimization in propeller by toggling reorder-bb, reorder-funcs, and split-funcs.
This update addresses the previous comments including:
1- Adding standard header comments. 2- Adding more comments to the code. 3- Fixing variable and function names to lower case.
Sep 26 2019
Sep 25 2019
Aug 13 2019
The original commit that this revision was trying to fix was reverted in rG885fa02da97a9f4d15f05fd7ec9c1358c47dd125 due to other technical reasons that this revision was not aiming to fix.
Aug 7 2019
Added test case.
Aug 6 2019
I'm not sure the second necessarily follows from the first. The way unique section names work for function-sections is to use a dot-separated suffix (".text._Z3foo", etc). Is the "strip the dot-separated suffix" standard, or some special case for .text? If it's standardized in some way, we could rely on that - adding a suffix to explicitly-named sections & the linker would remove those.
Thank you for spotting the problem David.
As I understand, there are two options here
1- Make this feature conditioned on TM.getUniqueSectionNames(): This makes -funique-section-names override -function-sections and -data-sections for explicitly-named sections. 2- Make this feature conditioned on TM.getMCAsmInfo()->useIntegratedAssembler(): This would make sure that for all assemblers except the integrated one, we disable this behavior.
I am open to both ways. So please advise.
Jul 31 2019
Thanks for the LGTM @ppc
Please go ahead and commit this change as I don't have commit access yet.
Differential Revision: https://reviews.llvm.org/D65478
Fixed the comment and removed the braces.
Fix regular expression in explicit-elf-sections.ll test.
Jul 30 2019
Updated the patch to handle data sections as well (thanks to @pcc for the suggestion).