Skip to content
  • Rafael Espindola's avatar
    Simplify the computation of undefined symbols. Instead of walking · c78f6577
    Rafael Espindola authored
    functions and initializers, just report the declarations present in
    the module.
    
    The motivation is to open the way for using the lazy module parsing,
    which should speed up clients that just want a symbol list (nm, ar).
    
    This is slightly less precise, but since both -strip-dead-prototypes
    and -globaldce are part of the standard pipeline, this shouldn't
    change the result for clang/dragonegg produced binaries.
    
    Any decl in an IL file was also put there because a FE expected it
    to be necessary, so this should not be a problem for "-O0 -emit-llvm".
    
    As a sanity check, I have bootstrapped clang on linux and built
    firefox on both linux and darwin. A clang bootstrap on darwin
    with LTO fails with or without this patch because, ironically,
    the linker doesn't like the combination of dead_strip and LTO
    when building libLTO.so :-)
    
    llvm-svn: 127870
    c78f6577
Loading