Skip to content
  1. Nov 28, 2015
    • Keno Fischer's avatar
      [autoconf] Fix MinGW build · 88f4919a
      Keno Fischer authored
      This is the autoconf analog of r251201. I realize autoconf is
      deprecated, but while it's in tree, it should at least be kept working.
      
      Also add the deprecation message to configure.ac such that AutoRegen
      actually picks ip up.
      
      llvm-svn: 254215
      88f4919a
    • Rafael Espindola's avatar
      Pass .ll directly to llvm-link. · 5aafbac0
      Rafael Espindola authored
      llvm-svn: 254214
      5aafbac0
    • Rafael Espindola's avatar
      Pass .ll directly to llvm-link · 57e61231
      Rafael Espindola authored
      llvm-svn: 254213
      57e61231
    • Diego Novillo's avatar
      SamplePGO - Add initial support for inliner annotations. · 84f06cc8
      Diego Novillo authored
      This adds two thresholds to the sample profiler to affect inlining
      decisions: the concept of global hotness and coldness.
      
      Functions that have accumulated more than a certain fraction of samples at
      runtime, are annotated with the InlineHint attribute. Conversely,
      functions that accumulate less than a certain fraction of samples, are
      annotated with the Cold attribute.
      
      This is very similar to the hints emitted by Clang when using
      instrumentation profiles.
      
      Notice that this is a very blunt instrument. A function may have
      globally collected a significant fraction of samples, but that does not
      necessarily mean that every callsite for that function is hot.
      
      Ideally, we would annotate each callsite with the samples collected at
      that callsite. This way, the inliner can incorporate all these weights
      into its cost model.
      
      Once the inliner offers this functionality, we can change the hints
      emitted here to a more precise per-callsite annotation. For now, this is
      providing some measure of speedups with our internal benchmarks. I've
      observed speedups of up to 23% (though the geo mean is about 3%). I expect
      these numbers to improve as the inliner gets better annotations.
      
      llvm-svn: 254212
      84f06cc8
    • Diego Novillo's avatar
      SamplePGO - Fix default threshold for hot callsites. · b5792408
      Diego Novillo authored
      Based on testing of internal benchmarks, I'm lowering this threshold to
      a value of 0.1%.  This means that SamplePGO will respect 99.9% of the
      original inline decisions when following a profile.
      
      The performance difference is noticeable in some tests. With the
      previous threshold, the speedups over baseline -O2 was about 0.63%. With
      the new default, the speedups are around 3% on average.
      
      The point of this threshold is not to do more aggressive inlining. When
      an inlined callsite crosses this threshold, SamplePGO will redo the
      inline decision so that it can better apply the input profile.
      
      By respecting most original inline decisions, we can apply more of the
      input profile because the shape of the code follows the profile more
      closely.
      
      In the next series, I'll be looking at adding some inline hints for the
      cold callsites and for toplevel functions that are hot/cold as well.
      
      llvm-svn: 254211
      b5792408
    • Rafael Espindola's avatar
      Modernize the test a bit · 138f8956
      Rafael Espindola authored
      Remove out of date comment.
      Pass .ll files to llvm-link.
      
      llvm-svn: 254210
      138f8956
  2. Nov 27, 2015
  3. Nov 26, 2015
Loading