Skip to content
  • Chandler Carruth's avatar
    [PM/LCG] Follow-up fix to r308088 to handle deletion of library · 06a86301
    Chandler Carruth authored
    functions.
    
    In the prior commit, we provide ordering to the LCG between functions
    and library function definitions that they might begin to call through
    transformations. But we still would delete these library functions from
    the call graph if they became dead during inlining.
    
    While this immediately crashed, it also exposed a loss of information.
    We shouldn't remove definitions of library functions that can still
    usefully participate in the LCG-powered CGSCC optimization process. If
    new call edges are formed, we want to have definitions to be called.
    
    We can still remove these functions if truly dead using global-dce, etc,
    but removing them during the CGSCC walk is premature.
    
    This fixes a crash in the new PM when optimizing some unusual libraries
    that end up with "internal" lib functions such as the code in the "R"
    language's libraries.
    
    llvm-svn: 308417
    06a86301
Loading