Skip to content
  1. Nov 03, 2013
  2. Nov 02, 2013
  3. Nov 01, 2013
    • Arnold Schwaighofer's avatar
      LoopVectorizer: Perform redundancy elimination on induction variables · a846a7f8
      Arnold Schwaighofer authored
      When the loop vectorizer was part of the SCC inliner pass manager gvn would
      run after the loop vectorizer followed by instcombine. This way redundancy
      (multiple uses) were removed and instcombine could perform scalarization on the
      induction variables. Having moved the loop vectorizer to later we no longer run
      any form of redundancy elimination before we perform instcombine. This caused
      vectorized induction variables to survive that did not before.
      
      On a recent iMac this helps linpack back from 6000Mflops to 7000Mflops.
      
      This should also help lpbench and paq8p.
      
      I ran a Release (without Asserts) build over the test-suite and did not see any
      negative impact on compile time.
      
      radar://15339680
      
      llvm-svn: 193891
      a846a7f8
    • David Blaikie's avatar
      DebugInfo: Make pubnames header printing similar to unit header printing · 2ede02f6
      David Blaikie authored
      In a failed attempt to allow the gnu-public-names.ll test case to not
      hardcode the size of the unit that the pubnames section referred to I've
      at least managed to have unit headers and pubnames headers print out in
      a similar style.
      
      This failed to achieve the desired goal because the header in a unit
      specifies the length of the unit without the length element of the
      header whereas the length in the pubnames includes this element, so the
      numbers are off by 4 bytes. I don't know of any arithmetic powers in
      FileCheck so the test case can't simply say "CU_LENGTH + 4".
      
      llvm-svn: 193872
      2ede02f6
    • Juergen Ributzka's avatar
      [Stackmap] Remove erroneous assert. · 359c532d
      Juergen Ributzka authored
      llvm-svn: 193871
      359c532d
    • Matt Arsenault's avatar
      Use isa<> instead of dyn_cast<> with unused value · ef1a950b
      Matt Arsenault authored
      llvm-svn: 193869
      ef1a950b
    • Chad Rosier's avatar
    • Chad Rosier's avatar
      a4bfb44a
    • Rafael Espindola's avatar
      Remove linkonce_odr_auto_hide. · 716e7405
      Rafael Espindola authored
      linkonce_odr_auto_hide was in incomplete attempt to implement a way
      for the linker to hide symbols that are known to be available in every
      TU and whose addresses are not relevant for a particular DSO.
      
      It was redundant in that it all its uses are equivalent to
      linkonce_odr+unnamed_addr. Unlike those, it has never been connected
      to clang or llvm's optimizers, so it was effectively dead.
      
      Given that nothing produces it, this patch just nukes it
      (other than the llvm-c enum value).
      
      llvm-svn: 193865
      716e7405
    • Aaron Ballman's avatar
      Commenting out this assert because it is causing the build bots to fail. This... · 2b7a733b
      Aaron Ballman authored
      Commenting out this assert because it is causing the build bots to fail.  This effectively reverts r193861, but needs to be fixed as part of r193769.
      
      llvm-svn: 193862
      2b7a733b
    • Aaron Ballman's avatar
      Fixing an order of evaluation error in an assert. · 96321aa5
      Aaron Ballman authored
      llvm-svn: 193861
      96321aa5
    • Benjamin Kramer's avatar
      LoopVectorize: Look for consecutive acces in GEPs with trailing zero indices · 1fbcdca9
      Benjamin Kramer authored
      If we have a pointer to a single-element struct we can still build wide loads
      and stores to it (if there is no padding).
      
      llvm-svn: 193860
      1fbcdca9
    • Bradley Smith's avatar
      [ARM] Add Virtualization subtarget feature and more build attributes in this area · 2521975a
      Bradley Smith authored
      Add a Virtualization ARM subtarget feature along with adding proper build
      attribute emission for Tag_Virtualization_use (encodes Virtualization and
      TrustZone) and Tag_MPextension_use.
      
      Also rework test/CodeGen/ARM/2010-10-19-mc-elf-objheader.ll testcase to
      something that is more maintainable. This changes the focus of this
      testcase away from testing CPU defaults (which is tested elsewhere), onto
      specifically testing that attributes are encoded correctly.
      
      llvm-svn: 193859
      2521975a
    • Bradley Smith's avatar
      [ARM] Fix Tag_ABI_HardFP_use build attribute · c848beba
      Bradley Smith authored
      Fix Tag_ABI_HardFP_use build attribute to handle single precision FP,
      replace deprecated Tag_ABI_HardFP_use value of 3 with 0 and also add
      some tests for Tag_ABI_VFP_args.
      
      llvm-svn: 193856
      c848beba
    • Hal Finkel's avatar
      Consider (x == -1) unlikely in BranchProbabilityInfo · 4d94930b
      Hal Finkel authored
      This adds another heuristic to BPI, similar to the existing heuristic that
      considers (x == 0) unlikely to be true. As suggested in the PACT'98 paper by
      Deitrich, Cheng, and Hwu, -1 is often used to indicate an invalid index, and
      equality comparisons with -1 are also unlikely to succeed. Local
      experimentation supports this hypothesis: This yields a 1-2% speedup in the
      test-suite sqlite benchmark on the PPC A2 core, with no significant
      regressions.
      
      llvm-svn: 193855
      4d94930b
    • Arnold Schwaighofer's avatar
      LoopVectorizer: If dependency checks fail try runtime checks · 70a4665f
      Arnold Schwaighofer authored
      When a dependence check fails we can still try to vectorize loops with runtime
      array bounds checks.
      
      This helps linpack to vectorize a loop in dgefa. And we are back to 2x of the
      scalar performance on a corei7-avx.
      
      radar://15339680
      
      llvm-svn: 193853
      70a4665f
    • Arnold Schwaighofer's avatar
      LoopVectorizer: Clear all member data structures in RuntimeCheck.reset() · 1ca922e2
      Arnold Schwaighofer authored
      Clear all data structures when resetting the RuntimeCheck data structure.
      
      No test case. This was exposed by an upcomming change.
      
      llvm-svn: 193852
      1ca922e2
    • David Blaikie's avatar
      DebugInfo: Emit member variable locations as data instead of expressions in blocks · 71d34a2e
      David Blaikie authored
      Drive by space optimization. Also makes the DIEs more regular which
      might speed up DWARF parsing.
      
      llvm-svn: 193835
      71d34a2e
    • Kevin Enderby's avatar
      Add to the disassembler C API output reference types for · 3c5ac810
      Kevin Enderby authored
      Objective-C data structures.
      
      This is allows tools such as darwin's otool(1) that uses the
      LLVM disassembler take a pointer value being loaded by
      an instruction and add a comment to what it is being referenced
      to make following disassembly of Objective-C programs
      more readable.
      
      For example disassembling the Mac OS X TextEdit app one
      will see comments like the following:
      
      movq    0x20684(%rip), %rsi ## Objc selector ref: standardUserDefaults
      movq    0x21985(%rip), %rdi ## Objc class ref: _OBJC_CLASS_$_NSUserDefaults
      movq    0x1d156(%rip), %r14 ## Objc message: +[NSUserDefaults standardUserDefaults]
      leaq    0x23615(%rip), %rdx ## Objc cfstring ref: @"SelectLinePanel"
      callq   0x10001386c ## Objc message: -[[%rdi super] initWithWindowNibName:]
      
      These diffs also include putting quotes around C strings
      in literal pools and uses "symbol address" in the comment
      when adding a symbol name to the comment to tell these
      types of references apart:
      
      leaq	0x4f(%rip), %rax ## literal pool for: "Hello world"
      movq    0x1c3ea(%rip), %rax ## literal pool symbol address: ___stack_chk_guard
      
      Of course the easy changes are in the LLVM disassembler and
      the hard work is up to the implementer of the SymbolLookUp()
      call back.
      
      rdar://10602439
      
      llvm-svn: 193833
      3c5ac810
  4. Oct 31, 2013
Loading