Skip to content
  1. Mar 13, 2013
  2. Mar 12, 2013
    • David Blaikie's avatar
      Remove unused "isMain" field from DICompileUnit · 452c3ff6
      David Blaikie authored
      llvm-svn: 176910
      452c3ff6
    • Michael J. Spencer's avatar
      [Support][Path] Don't inf loop if creating the parent directory fails. · 20a11b25
      Michael J. Spencer authored
      Patch by Paul Robinson.
      
      llvm-svn: 176908
      20a11b25
    • David Blaikie's avatar
      Update debug info test cases with empty SplitDebugFilename field. · a4f770d5
      David Blaikie authored
      This could be 'null' or the empty string, DIDescriptor::getStringField
      coalesces the two cases anyway so it's just a matter of legible/efficient
      representation.
      
      The change in behavior of the DICompileUnit::get* functions could be
      subsumed by the full verification check - but ideally that should just be an
      assertion if we could front-load the actual debug info metadata failure paths.
      
      llvm-svn: 176907
      a4f770d5
    • Arnold Schwaighofer's avatar
      ARM cost model: Increase the cost for vector casts that use the stack · 90774f3c
      Arnold Schwaighofer authored
      Increase the cost of v8/v16-i8 to v8/v16-i32 casts and truncates as the backend
      currently lowers those using stack accesses.
      
      This was responsible for a significant degradation on
      MultiSource/Benchmarks/Trimaran/enc-pc1/enc-pc1
      where we vectorize one loop to a vector factor of 16. After this patch we select
      a vector factor of 4 which will generate reasonable code.
      
      unsigned char cle[32];
      
      void test(short c) {
        unsigned short compte;
        for (compte = 0; compte <= 31; compte++) {
          cle[compte] = cle[compte] ^ c;
        }
      }
      
      radar://13220512
      
      llvm-svn: 176898
      90774f3c
    • Manman Ren's avatar
    • Michael J. Spencer's avatar
      [Support][MemoryBuffer] Use sys::fs::mapped_file_region instead of sys::Path::MapInFilePages. · 2343a74a
      Michael J. Spencer authored
      This gives us memory mapped file I/O on Windows.
      
      llvm-svn: 176886
      2343a74a
    • Manman Ren's avatar
      Debug Info: use DW_FORM_ref_addr instead of DW_FORM_ref4 if the referenced DIE · 14a029d9
      Manman Ren authored
      belongs to a different compile unit.
      
      DW_FORM_ref_addr should be used for cross compile-unit reference.
      
      When compiling a large application, we got a dwarfdump verification error where
      abstract_origin points to nowhere.
      
      This error can't be reproduced on any testing case in MultiSource.
      We may have other cases where we use DW_FORM_ref4 unconditionally.
      
      rdar://problem/13370501
      
      llvm-svn: 176882
      14a029d9
    • Richard Relph's avatar
      Avoid generating ISD::SELECT for vector operands to SIGN_EXTEND · 61046a97
      Richard Relph authored
      llvm-svn: 176881
      61046a97
    • Kevin Enderby's avatar
      Remove the assert()'s from the LLVMCreateDisasmCPU() library API and just · f536c6af
      Kevin Enderby authored
      return 0 to indicate failure to create the disassembler.  A library routine
      should not assert and just let the caller handler the error.  For example
      darwin's otool(1) will simply print an error if it ends up using a library
      that is not configured for a target it wants:
      
      % otool -tv ViewController.o
      ViewController.o:
      (__TEXT,__text) section
      can't create arm llvm disassembler
      
      This is much better than an abort which appears as a crash to the user or
      even the assert when using a Debug+Asserts built library:
      
      Assertion failed: (MAI && "Unable to create target asm info!"), function LLVMCreateDisasmCPU, file /Volumes/SandBox/llvm/lib/MC/MCDisassembler/Disassembler.cpp, line 47.
      
      radr://12539918
      
      llvm-svn: 176880
      f536c6af
    • Pete Cooper's avatar
      Add a doFinalization method to the DataLayout pass. · 6308a828
      Pete Cooper authored
      This pass is meant to be immutable, however it holds mutable state to cache StructLayouts.
      This method will allow the pass manager to clear the mutable state between runs.
      
      Note that unfortunately it is still necessary to have the destructor, even though it does the
      same thing as doFinalization.  This is because most TargetMachines embed a DataLayout on which
      doFinalization isn't run as its never added to the pass manager.
      
      I also didn't think it was necessary to complication things with a deInit method for which
      doFinalization and ~DataLayout both call as there's only one field of mutable state.  If we had
      more fields to finalize i'd have added this.
      
      llvm-svn: 176877
      6308a828
    • Dan Gohman's avatar
      Change the order of the operands in patchAndReplaceAllUsesWith so · 00253592
      Dan Gohman authored
      that they're more consistent with Value::replaceAllUsesWith.
      
      llvm-svn: 176872
      00253592
    • Hal Finkel's avatar
      Don't reserve R2 on Darwin/PPC · 01271c60
      Hal Finkel authored
      Now that only the register-scavenger version of the CR spilling code remains,
      we no longer need the Darwin R2 hack. Darwin can use R0 as a spare register in
      any case where the System V ABI uses it (R0 is special architecturally, and so
      is reserved under all common ABIs).
      
      A few test cases needed to be updated to reflect the register-allocation changes.
      
      llvm-svn: 176868
      01271c60
    • Hal Finkel's avatar
      PPC should always use the register scavenger for CR spilling · e154c8f2
      Hal Finkel authored
      This removes the -disable-ppc[32|64]-regscavenger options; the code
      that uses the register scavenger has been working well (and has been the default)
      for some time, and we don't need options to enable the old (broken) CR spilling code.
      
      llvm-svn: 176865
      e154c8f2
    • Patrik Hagglund's avatar
      Small fix for cost analysis of ptrtoint. · 3eaa4b93
      Patrik Hagglund authored
      This seems to be a "copy-paste error" introducecd in r156140.
      
      llvm-svn: 176863
      3eaa4b93
    • Akira Hatanaka's avatar
      [mips] Rename function and variable names to start with proper case. Fix typos. · 0bb60d89
      Akira Hatanaka authored
      Delete commented-out code.
      
      llvm-svn: 176844
      0bb60d89
    • Meador Inge's avatar
      LibCallSimplifier: optimize speed for short-lived instances · 20255ef2
      Meador Inge authored
      Nadav reported a performance regression due to the work I did to
      merge the library call simplifier into instcombine [1].  The issue
      is that a new LibCallSimplifier object is being created whenever
      InstCombiner::runOnFunction is called.  Every time a LibCallSimplifier
      object is used to optimize a call it creates a hash table to map from
      a function name to an object that optimizes functions of that name.
      For short-lived LibCallSimplifier instances this is quite inefficient.
      Especially for cases where no calls are actually simplified.
      
      This patch fixes the issue by dropping the hash table and implementing
      an explicit lookup function to correlate the function name to the object
      that optimizes functions of that name.  This avoids the cost of always
      building and destroying the hash table in cases where the LibCallSimplifier
      object is short-lived and avoids the cost of building the table when no
      simplifications are actually preformed.
      
      On a benchmark containing 100,000 calls where none of them are simplified
      I noticed a 30% speedup.  On a benchmark containing 100,000 calls where
      all of them are simplified I noticed an 8% speedup.
      
      [1] http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130304/167639.html
      
      llvm-svn: 176840
      20255ef2
    • David Blaikie's avatar
      Remove support for versioned debug info. · dc69ebb1
      David Blaikie authored
      Versioned debug info support has been a burden to maintain & also compromised
      current debug info verification by causing test cases testing old debug info to
      remain rather than being updated to the latest. It also makes it hard to add or
      change the metadata schema by requiring various backwards-compatibility in the
      DI* hierarchy.
      
      So it's being removed in preparation for new changes to the schema to tidy up
      old/unnecessary fields and add new fields needed for new debug info (well, new
      to LLVM at least).
      
      The more surprising part of this is the changes to DI*::Verify - this became
      necessary due to the changes to AsmWriter. AsmWriter was relying on the version
      test to decide which bits of metadata were actually debug info when printing
      the comment annotations. Without the version information the tag numbers were
      too common & it would print debug info on random metadata that happened to
      start with an integer that matched a tag number. Instead this change makes the
      Verify functions more precise (just adding "number of operands" checks - not
      type checking those operands yet) & relies on that to decide which metadata is
      debug info metadata.
      
      llvm-svn: 176838
      dc69ebb1
    • David Blaikie's avatar
      085abe38
  3. Mar 11, 2013
  4. Mar 10, 2013
  5. Mar 09, 2013
Loading