Skip to content
  • Chad Rosier's avatar
    Fall back to the selection dag isel to select tail calls. · df42cf39
    Chad Rosier authored
    This shouldn't affect codegen for -O0 compiles as tail call markers are not
    emitted in unoptimized compiles.  Testing with the external/internal nightly
    test suite reveals no change in compile time performance.  Testing with -O1,
    -O2 and -O3 with fast-isel enabled did not cause any compile-time or
    execution-time failures.  All tests were performed on my x86 machine.
    I'll monitor our arm testers to ensure no regressions occur there.
    
    In an upcoming clang patch I will be marking the objc_autoreleaseReturnValue
    and objc_retainAutoreleaseReturnValue as tail calls unconditionally.  While
    it's theoretically true that this is just an optimization, it's an
    optimization that we very much want to happen even at -O0, or else ARC
    applications become substantially harder to debug.
    
    Part of rdar://12553082
    
    llvm-svn: 169796
    df42cf39
Loading