[PATCH] D100735: [CodeGen] Enable Windows exception handling for basic block sections
    TaoPan via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Tue Jun 22 00:57:46 PDT 2021
    
    
  
TaoPan added a comment.
In D100735#2832069 <https://reviews.llvm.org/D100735#2832069>, @modimo wrote:
> Is there currently a difference in the output when built with `-basic-block-sections=all -unique-basic-block-section-names` vs. without? If so, should CHECK for both cases to highlight the difference and add some explanatory comments on why a particular transformation took place. What are considered landing pads for `avoidZeroOffsetLandingPad` under MSVC? I can double-check to make sure they're truly not needed.
>
> Otherwise this looks good and works well as a first step.
Thanks for your  comment!
No big difference. There are 12 more sections in Sections table, I checked asm file, there are 12 BB sections, so all added sections are BB sections. And as the test file CHECK, one relocation of .xdata section changed from ".text" to "?TestCPPEX@@YAXH at Z.__part.3". Is this difference need to add without `-basic-block-sections=all -unique-basic-block-section-names` case for highlight the difference?
FYI, about `avoidZeroOffsetLandingPad` under MSVC, isFuncletEHPersonality(Pers) check and return of SelectionDAGISel::PrepareEHLandingPad() prevent later addLandingPad(MBB) and adding TargetOpcode::EH_LABEL MachineInstr in the case of MSVC.  `while (!MI->isEHLabel()) ++MI;` of `avoidZeroOffsetLandingPad` is dead loop as no EHLabel MI in the case of MSVC.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100735/new/
https://reviews.llvm.org/D100735
    
    
More information about the llvm-commits
mailing list