Skip to content
  1. Aug 27, 2013
    • Shuxin Yang's avatar
      Revert 189297, the original commit message is following. · 388b52c0
      Shuxin Yang authored
      ----
        Add new API lto_codegen_compile_parallel().
      
        This API is proposed by Nick Kledzik. The semantic is:
      
        --------------------------------------------------------------------------
         Generate code for merged module into an array of native object files. On 
         success returns a pointer to an array of NativeObjectFile.  The count 
         parameter returns the number of elements in the array.  Each element is 
         a pointer/length for a generated mach-o/ELF buffer.  The buffer is owned
         by the lto_code_gen_t and will be freed when lto_codegen_dispose() is called, 
         or lto_codegen_compile() is called again. On failure, returns NULL 
         (check lto_get_error_message() for details).
      
         extern const struct  NativeObjectFile*
         lto_codegen_compile_parallel(lto_code_gen_t cg, size_t *count);
        ---------------------------------------------------------------------------
      
        This API is currently only called on OSX platform. Linux or other Unixes
      using GNU gold are not supposed to call this function, because on these systems, 
      object files are fed back to linker via disk file instead of memory buffer.
      
        In this commit, lto_codegen_compile_parallel() simply calls
      lto_codegen_compile() to return a single object file. In the near future,
      this function is the entry point for compilation with partition. Linker can
      blindly call this function even if partition is turned off; in this case,
      compiler will return only one object file.
      
      llvm-svn: 189386
      388b52c0
    • Elena Demikhovsky's avatar
      AVX-512: added conversion instructions. · 93eeb47d
      Elena Demikhovsky authored
      llvm-svn: 189349
      93eeb47d
    • Tim Northover's avatar
      DAGCombiner: make sure or/shl/srl really has zero high bits before forming bswap · 819bfb5a
      Tim Northover authored
      We want to convert code like (or (srl N, 8), (shl N, 8)) into (srl (bswap N),
      const), but this is only valid if the bits above 16 on the source pattern are
      0, the checks we were doing on this were slightly wrong before.
      
      llvm-svn: 189348
      819bfb5a
    • Joey Gouly's avatar
      [ARMv8] Add some negative tests for the recent VFP/NEON instructions. · a710d810
      Joey Gouly authored
      Fix two issues I found while writing these tests.
      
      llvm-svn: 189341
      a710d810
    • Joey Gouly's avatar
      Add an assertion to the fixed-size allocator to ensure that we don't request · 0df16321
      Joey Gouly authored
      an allocation that is greater than what we will actually allocate.
      
      Patch by Artyom Skrobov!
      
      llvm-svn: 189340
      0df16321
    • Tim Northover's avatar
      ARM: add natural patterns for vaddhl and vsubhl. · 449d390f
      Tim Northover authored
      These instructions aren't particularly complicated and it's well worth having
      patterns for some reasonably useful LLVM IR that will match them. Soon we
      should be able to switch Clang over to producing this natural version.
      
      llvm-svn: 189335
      449d390f
    • Michel Danzer's avatar
      R600/SI: Enable local-memory-two-objects lit test · ee7b6089
      Michel Danzer authored
      
      
      Reviewed-by: default avatarTom Stellard <thomas.stellard@amd.com>
      llvm-svn: 189334
      ee7b6089
    • Daniel Sanders's avatar
      [mips][msa] Added tests for and.v, bmnz.v, bmz.v, bsel.v, nor.v, or.v, xor.v... · c426754a
      Daniel Sanders authored
      [mips][msa] Added tests for and.v, bmnz.v, bmz.v, bsel.v, nor.v, or.v, xor.v when non-byte vectors are used.
      
      Note that all of these tests use ld.b and st.b for the loads and stores
      regardless of the data size. This is because the definition of bitcast is
      equivalent to a store/load sequence and DAG combiner accordingly folds bitcasts
      to/from v16i8 into the load/store nodes to product load/store nodes with
      type v16i8.
      
      llvm-svn: 189333
      c426754a
    • Daniel Sanders's avatar
      [mips][msa] Added spill/reload support · b8bce4d9
      Daniel Sanders authored
      llvm-svn: 189332
      b8bce4d9
    • Richard Sandiford's avatar
      [SystemZ] Extend memcpy and memset support to all constant lengths · 5e318f0b
      Richard Sandiford authored
      Lengths up to a certain threshold (currently 6 * 256) use a series of MVCs.
      Lengths above that threshold use a loop to handle X*256 bytes followed
      by a single MVC to handle the excess (if any).  This loop will also be
      needed in future when support for variable lengths is added.
      
      Because the same tablegen classes are used to define MVC and CLC,
      the patch also has the side-effect of defining a pseudo loop instruction
      for CLC.  That instruction isn't used yet (and wouldn't be handled correctly
      if it were).  I'm planning to use it soon though.
      
      llvm-svn: 189331
      5e318f0b
    • Daniel Sanders's avatar
      70835f60
    • Alexey Samsonov's avatar
      Add support for DebugFission to DWARF parser · e3ba81bf
      Alexey Samsonov authored
      Summary:
      1) Make llvm-symbolizer properly symbolize
      files with split debug info (by using stanalone .dwo files).
      2) Make DWARFCompileUnit parse and store corresponding .dwo file,
      if necessary.
      3) Make bits of DWARF parsing more CompileUnit-oriented.
      
      Reviewers: echristo
      
      Reviewed By: echristo
      
      CC: bkramer, llvm-commits
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D1164
      
      llvm-svn: 189329
      e3ba81bf
    • Elena Demikhovsky's avatar
      AVX-512: Added FMA instructions. · 12f24673
      Elena Demikhovsky authored
      llvm-svn: 189326
      12f24673
    • Sylvestre Ledru's avatar
      Fix the build issue under ia64. Close bug #5715 · fb992ab3
      Sylvestre Ledru authored
      Thanks to Luca Falavigna for the help and most of the patch.
      
      llvm-svn: 189324
      fb992ab3
    • Charles Davis's avatar
      Revert "Fix the build broken by r189315." and "Move everything depending on... · 1827bd8a
      Charles Davis authored
      Revert "Fix the build broken by r189315." and "Move everything depending on Object/MachOFormat.h over to Support/MachO.h."
      
      This reverts commits r189319 and r189315. r189315 broke some tests on what I
      believe are big-endian platforms.
      
      llvm-svn: 189321
      1827bd8a
    • David Blaikie's avatar
      Fix the build broken by r189315. · ed80aa55
      David Blaikie authored
      (this triggered Clang's -Wsometimes-uninitialized on the default path
      through the switch)
      
      llvm-svn: 189319
      ed80aa55
    • Charles Davis's avatar
      0c6f71b4
    • Charles Davis's avatar
      Support/MachO: Add a bunch of defines. · 74ec8b09
      Charles Davis authored
      Right now we have two headers for the Mach-O format. I'd like to get rid
      of one. Since the other object formats are all in Support, I chose to
      keep the Mach-O header in Support, and discard the other one.
      
      llvm-svn: 189314
      74ec8b09
    • Michael Gottesman's avatar
      Fixed typo. · eab9a7fa
      Michael Gottesman authored
      Noticed by Stephen Checkoway <s@pahtak.org>.
      
      llvm-svn: 189312
      eab9a7fa
    • Kai Nacke's avatar
      Fix wrong code offset for unwind code SET_FPREG. · 1b7e4866
      Kai Nacke authored
      The code offset for unwind code SET_FPREG is wrong because it is set
      to constant 0. The fix is to do the same as for the other unwind
      codes: emit a label and later the absolute difference between the
      label and the begin of the prologue.
      Also enables the failing test case MC/COFF/seh.s
      
      Reviewed by Jim Grosbach, Charles Davis and Nico Rieck.
      
      llvm-svn: 189309
      1b7e4866
    • Eric Christopher's avatar
      Add derived from source. · 203d4dfc
      Eric Christopher authored
      llvm-svn: 189301
      203d4dfc
    • Eric Christopher's avatar
      Add a testcase to ensure that the pubnames section uses an offset · 78a9dc68
      Eric Christopher authored
      off of the debug_info section even when split dwarf is enabled.
      
      llvm-svn: 189300
      78a9dc68
    • Owen Anderson's avatar
      Remove an over-zealous assertion. A pointer type could be illegal if the... · a0260f84
      Owen Anderson authored
      Remove an over-zealous assertion.  A pointer type could be illegal if the target is prepared to custom-legalize pointer operands.  This assertion was evaluated before the target would have a chance to do so, making it impossible.
      
      llvm-svn: 189299
      a0260f84
    • Shuxin Yang's avatar
      Add new API lto_codegen_compile_parallel(). · a44362e4
      Shuxin Yang authored
        This API is proposed by Nick Kledzik. The semantic is:
      
        --------------------------------------------------------------------------
         Generate code for merged module into an array of native object files. On 
         success returns a pointer to an array of NativeObjectFile.  The count 
         parameter returns the number of elements in the array.  Each element is 
         a pointer/length for a generated mach-o/ELF buffer.  The buffer is owned
         by the lto_code_gen_t and will be freed when lto_codegen_dispose() is called, 
         or lto_codegen_compile() is called again. On failure, returns NULL 
         (check lto_get_error_message() for details).
      
         extern const struct  NativeObjectFile*
         lto_codegen_compile_parallel(lto_code_gen_t cg, size_t *count);
        ---------------------------------------------------------------------------
      
        This API is currently only called on OSX platform. Linux or other Unixes
      using GNU gold are not supposed to call this function, because on these systems, 
      object files are fed back to linker via disk file instead of memory buffer.
      
        In this commit, lto_codegen_compile_parallel() simply calls
      lto_codegen_compile() to return a single object file. In the near future,
      this function is the entry point for compilation with partition. Linker can
      blindly call this function even if partition is turned off; in this case,
      compiler will return only one object file.
      
      llvm-svn: 189297
      a44362e4
    • Eric Christopher's avatar
      Formatting. · ca68bbf5
      Eric Christopher authored
      llvm-svn: 189296
      ca68bbf5
    • Eric Christopher's avatar
      Make the lifetime of the DICompileUnit we're constructing from the · 6b16b43e
      Eric Christopher authored
      MDNode more clear as just for a single argument.
      
      llvm-svn: 189294
      6b16b43e
    • Eric Christopher's avatar
      Have the skeleton compile unit construction method take the CU it · 6fdf324f
      Eric Christopher authored
      is constructing from as an input and keep the same unique identifier.
      We can use this to connect items which must stay in the .o file
      (e.g. pubnames and pubtypes) to the skeleton cu rather than having
      duplicate unique numbers for the sections and needing to do lookups
      based on MDNode.
      
      llvm-svn: 189293
      6fdf324f
    • Eric Christopher's avatar
      Remove duplicate set of CompilationDir. · 6d13fe00
      Eric Christopher authored
      llvm-svn: 189292
      6d13fe00
    • Eric Christopher's avatar
      Remove the language parameter and variable from the compile unit. We · bfceb2fe
      Eric Christopher authored
      can get it via the MDNode that's passed in. Save that instead.
      
      llvm-svn: 189291
      bfceb2fe
    • Matt Arsenault's avatar
      Fix lint assert on integer vector division · 5faa669b
      Matt Arsenault authored
      llvm-svn: 189290
      5faa669b
    • Eric Christopher's avatar
      Treat the pubtypes section similarly to the pubnames section and emit · 4d36ca00
      Eric Christopher authored
      it by default under linux or when we're trying to keep compatibility
      with old gdb versions.
      
      Fix testcase for option name change.
      
      llvm-svn: 189289
      4d36ca00
    • Eric Christopher's avatar
      Only emit the section sym if we're emitting the section. · bf1ea3c7
      Eric Christopher authored
      llvm-svn: 189288
      bf1ea3c7
    • Matt Arsenault's avatar
      Fix inserting instructions before last in bundle. · ed9f76d3
      Matt Arsenault authored
      The builder inserts from before the insert point,
      not after, so this would insert before the last
      instruction in the bundle instead of after it.
      
      I'm not sure if this can actually be a problem
      with any of the current insertions.
      
      llvm-svn: 189285
      ed9f76d3
    • Manman Ren's avatar
      Debug Info: add an identifier field to DICompositeType. · 0ed70aeb
      Manman Ren authored
      DICompositeType will have an identifier field at position 14. For now, the
      field is set to null in DIBuilder.
      For DICompositeTypes where the template argument field (the 13th field)
      was optional, modify DIBuilder to make sure the template argument field is set.
      Now DICompositeType has 15 fields.
      
      Update DIBuilder to use NULL instead of "i32 0" for null value of a MDNode.
      Update verifier to check that DICompositeType has 15 fields and the last
      field is null or a MDString.
      
      Update testing cases to include an extra field for DICompositeType.
      The identifier field will be used by type uniquing so a front end can
      genearte a DICompositeType with a unique identifer.
      
      llvm-svn: 189282
      0ed70aeb
    • Nadav Rotem's avatar
      LoopVectorize: Implement partial loop unrolling when vectorization is not profitable. · bdc9ff44
      Nadav Rotem authored
      This patch enables unrolling of loops when vectorization is legal but not profitable.
      We add a new class InnerLoopUnroller, that extends InnerLoopVectorizer and replaces some of the vector-specific logic with scalars.
      
      This patch does not introduce any runtime regressions and improves the following workloads:
      
      SingleSource/Benchmarks/Shootout/matrix -22.64%
      SingleSource/Benchmarks/Shootout-C++/matrix -13.06%
      External/SPEC/CINT2006/464_h264ref/464_h264ref  -3.99%
      SingleSource/Benchmarks/Adobe-C++/simple_types_constant_folding -1.95%
      
      llvm-svn: 189281
      bdc9ff44
  2. Aug 26, 2013
Loading