Skip to content
  • Anna Thomas's avatar
    [FastISel][SelectionDAG]Teach fastISel about GC intrinsics · a66a98cc
    Anna Thomas authored
    Summary:
    We are crashing in LLC at O0 when gc intrinsics are present in the block.
    The reason being FastISel performs basic block ISel by modifying GC.relocates
    to be the first instruction in the block. This can cause us to visit the GC
    relocate before it's corresponding GC.statepoint is visited, which is incorrect.
    When we lower the statepoint, we record the base and derived pointers, along
    with the gc.relocates. After this we can visit the gc.relocate.
    
    This patch avoids fastISel from incorrectly creating the block with gc.relocate
    as the first instruction.
    
    Reviewers: qcolombet, skatkov, qikon, reames
    
    Reviewed by: skatkov
    
    Subscribers: llvm-commits
    
    Differential Revision: https://reviews.llvm.org/D34421
    
    llvm-svn: 307084
    a66a98cc
Loading