Skip to content
  1. Mar 23, 2017
    • Krzysztof Parzyszek's avatar
      Move spill size and alignment info from MC to TargetRegisterInfo · 17bcb439
      Krzysztof Parzyszek authored
      This is another step towards implementing register classes with
      parametrized register/spill sizes.
      
      Differential Revision: https://reviews.llvm.org/D31299
      
      llvm-svn: 298652
      17bcb439
    • Jessica Paquette's avatar
      [Outliner] Remove unused lambda capture. · 5096a347
      Jessica Paquette authored
      Remove an unused lambda capture that made some bots unhappy.
      
      llvm-svn: 298651
      5096a347
    • Reid Kleckner's avatar
      [PDB] Use two DBs when dumping the IPI stream · a5d187b0
      Reid Kleckner authored
      Summary:
      When dumping these records from an object file section, we should use
      only one type database. However, when dumping from a PDB, we should use
      two: one for the type stream and one for the IPI stream.
      
      Certain type records that normally live in the .debug$T object file
      section get moved over to the IPI stream of the PDB file and they get
      new indices.
      
      So far, I've noticed that the MSVC linker always moves these records
      into IPI:
      - LF_FUNC_ID
      - LF_MFUNC_ID
      - LF_STRING_ID
      - LF_SUBSTR_LIST
      - LF_BUILDINFO
      - LF_UDT_MOD_SRC_LINE
      
      These records have index fields that can point into TPI or IPI. In
      particular, LF_SUBSTR_LIST and LF_BUILDINFO point to LF_STRING_ID
      records to describe compilation command lines.
      
      I've modified the dumper to have an optional pointer to the item DB, and
      to do type name lookup of these fields in that DB. See printItemIndex.
      The result is that our pdbdump-headers.test is more faithful to the PDB
      contents and the output is less confusing.
      
      Reviewers: ruiu
      
      Subscribers: amccarth, zturner, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D31309
      
      llvm-svn: 298649
      a5d187b0
    • Jessica Paquette's avatar
      [Outliner] Fix compile-time overhead for candidate choice · acffa28c
      Jessica Paquette authored
      The old candidate collection method in the outliner caused some very large
      regressions in compile time on large tests. For MultiSource/Benchmarks/7zip it
      caused a 284.07 s or 1156% increase in compile time. On average, using the
      SingleSource/MultiSource tests, it caused an average increase of 8 seconds in
      compile time (something like 1000%).
      
      This commit replaces that candidate collection method with a new one which
      only visits each node in the tree once. This reduces the worst compile time
      increase (still 7zip) to a 0.542 s overhead (22%) and the average compile time
      increase on SingleSource and MultiSource to 0.018 s (4%).
      
      llvm-svn: 298648
      acffa28c
    • Dehao Chen's avatar
      Disable loop unrolling and icp in SamplePGO ThinLTO compile phase · 8c886719
      Dehao Chen authored
      Summary:
      loop unrolling and icp will make the sample profile annotation much harder in the backend. So disable these 2 optimization in the ThinLTO compile phase.
      Will add a test in cfe in a separate patch.
      
      Reviewers: tejohnson
      
      Reviewed By: tejohnson
      
      Subscribers: mehdi_amini, llvm-commits, Prazek
      
      Differential Revision: https://reviews.llvm.org/D31217
      
      llvm-svn: 298646
      8c886719
    • Richard Smith's avatar
      63dee972
    • Craig Topper's avatar
      [InstCombine] Remove some code from visitAnd that dealt with trying to reduce... · 74494d01
      Craig Topper authored
      [InstCombine] Remove some code from visitAnd that dealt with trying to reduce the LHS of a sub to 0. This should now be fully handled by SimplifyDemandedInstructionBits now.
      
      Now that we call ShrinkDemandedConstant on the RHS of sub this should be taken care of. This code doesn't trigger on any in tree regressions, but did before ShrinkDemandedConstant was added to the RHS.
      
      llvm-svn: 298644
      74494d01
    • Erich Keane's avatar
      LLVM Changes for alloc_align · ee1fac61
      Erich Keane authored
      GCC has the alloc_align attribute, which is similar to assume_aligned, except the attribute's parameter is the index of the integer parameter that needs aligning to.
      
      This is the required LLVM changes to make this happen.
      
      Differential Revision: https://reviews.llvm.org/D29598
      
      llvm-svn: 298643
      ee1fac61
    • Adrian Prantl's avatar
      Zero-Initialize PrevInstBB when entering a new MachineFunction. · 8f333795
      Adrian Prantl authored
      It is not guaranteed that the memory used for MachineBasicBlocks in
      the previous MachineFunction hasn't been freed, so holding on to a
      pointer to the last function's isn't correct. Particularly I have
      observed the sret.ll testcase failing because the first BasicBlock in
      the new function happened to be allocated to the exact same memory as
      the previously saved and (deleted) PrevInstBB.
      
      llvm-svn: 298642
      8f333795
    • Gil Rapaport's avatar
      [LV] Add regression test for r297610 · 638d4538
      Gil Rapaport authored
      The new test asserts that scalarized memory operations get memcheck metadata
      added even if the loop is only unrolled.
      
      Differential Revision: https://reviews.llvm.org/D30972
      
      llvm-svn: 298641
      638d4538
    • Anna Thomas's avatar
      [LVIPrinterPass] Print LVI info for function arguments · a8ce8fa7
      Anna Thomas authored
      Using AssemblyAnnotationWriter for LVI printer prints
      for instructions and basic blocks.
      So, we explicitly need to print LVI info for the arguments of the function (these
      are values and not instructions).
      
      llvm-svn: 298640
      a8ce8fa7
    • Teresa Johnson's avatar
      [ThinLTO] Add support for emitting minimized bitcode for thin link · 0c6a4ff8
      Teresa Johnson authored
      Summary:
      The cumulative size of the bitcode files for a very large application
      can be huge, particularly with -g. In a distributed build environment,
      all of these files must be sent to the remote build node that performs
      the thin link step, and this can exceed size limits.
      
      The thin link actually only needs the summary along with a bitcode
      symbol table. Until we have a proper bitcode symbol table, simply
      stripping the debug metadata results in significant size reduction.
      
      Add support for an option to additionally emit minimized bitcode
      modules, just for use in the thin link step, which for now just strips
      all debug metadata. I plan to add a cc1 option so this can be invoked
      easily during the compile step.
      
      However, care must be taken to ensure that these minimized thin link
      bitcode files produce the same index as with the original bitcode files,
      as these original bitcode files will be used in the backends.
      
      Specifically:
      1) The module hash used for caching is typically produced by hashing the
      written bitcode, and we want to include the hash that would correspond
      to the original bitcode file. This is because we want to ensure that
      changes in the stripped portions affect caching. Added plumbing to emit
      the same module hash in the minimized thin link bitcode file.
      2) The module paths in the index are constructed from the module ID of
      each thin linked bitcode, and typically is automatically generated from
      the input file path. This is the path used for finding the modules to
      import from, and obviously we need this to point to the original bitcode
      files. Added gold-plugin support to take a suffix replacement during the
      thin link that is used to override the identifier on the MemoryBufferRef
      constructed from the loaded thin link bitcode file. The assumption is
      that the build system can specify that the minimized bitcode file has a
      name that is similar but uses a different suffix (e.g. out.thinlink.bc
      instead of out.o).
      
      Added various tests to ensure that we get identical index files out of
      the thin link step.
      
      Reviewers: mehdi_amini, pcc
      
      Subscribers: Prazek, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D31027
      
      llvm-svn: 298638
      0c6a4ff8
    • Eric Christopher's avatar
      c78be4d3
    • Nirav Dave's avatar
      [X86] Fix Stale SDNode use in X86ISelDAGtoDAG · 9ebefeb9
      Nirav Dave authored
      Summary: Fixes pr32329.
      
      Reviewers: spatel, craig.topper
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D31286
      
      llvm-svn: 298633
      9ebefeb9
    • Zhaoshi Zheng's avatar
      Model ashr(shl(x, n), m) as mul(x, 2^(n-m)) when n > m · e3c9070f
      Zhaoshi Zheng authored
      Given below case:
      
        %y = shl %x, n
        %z = ashr %y, m
      
      when n = m, SCEV models it as sext(trunc(x)). This patch tries to handle
      the case where n > m by using sext(mul(trunc(x), 2^(n-m)))) as the SCEV
      expression.
      
      llvm-svn: 298631
      e3c9070f
    • Zhaoshi Zheng's avatar
      revert test commit r298629 · f47c2751
      Zhaoshi Zheng authored
      llvm-svn: 298630
      f47c2751
    • Zhaoshi Zheng's avatar
      test commit · 49ae3558
      Zhaoshi Zheng authored
      llvm-svn: 298629
      49ae3558
    • Eric Christopher's avatar
      Remove the subtarget argument from LowerFP_TO_INT since there's one · cff84924
      Eric Christopher authored
      stored on X86TargetLowering.
      
      llvm-svn: 298628
      cff84924
    • Eric Christopher's avatar
      Remove unused X86Subtarget argument from getOnesVector. · a19a14b4
      Eric Christopher authored
      llvm-svn: 298627
      a19a14b4
    • Adrian McCarthy's avatar
      Somehow this still breaks because of ANSI color codes in test output on Linux. · 3c0328e0
      Adrian McCarthy authored
      Reverting until I can figure out the root cause.
      
      Revert "Re-land:  Make NativeExeSymbol a concrete subclass of NativeRawSymbol [PDB]"
      
      This reverts commit f461a70cc376f0f91c8b4917be79479cc86330a5.
      
      llvm-svn: 298626
      3c0328e0
    • Adrian McCarthy's avatar
      Fix build break after r298623 · e4e5a2b1
      Adrian McCarthy authored
      Use the -color-output option explicitly to eliminate the ANSI color codes in
      pdb-native-summary.test.  (The default should have done this.)
      
      llvm-svn: 298625
      e4e5a2b1
    • Pirama Arumuga Nainar's avatar
      [ARM] Fix computeKnownBits for ARMISD::CMOV · bc264827
      Pirama Arumuga Nainar authored
      Summary:
      The true and false operands for the CMOV are operands 0 and 1.
      ARMISelLowering.cpp::computeKnownBits was looking at operands 1 and 2
      instead.  This can cause CMOV instructions to be incorrectly folded into
      BFI if value set by the CMOV is another CMOV, whose known bits are
      computed incorrectly.
      
      This patch fixes the issue and adds a test case.
      
      Reviewers: kristof.beyls, jmolloy
      
      Subscribers: llvm-commits, aemerson, srhines, rengolin
      
      Differential Revision: https://reviews.llvm.org/D31265
      
      llvm-svn: 298624
      bc264827
    • Adrian McCarthy's avatar
      Re-land: Make NativeExeSymbol a concrete subclass of NativeRawSymbol [PDB] · 997a15c3
      Adrian McCarthy authored
      The new test should pass on all platforms now that llvm-pdbdump has the
      `-color-output` option.
      
      This moves exe symbol-specific method implementations out of NativeRawSymbol
      into a concrete subclass. Also adds implementations for hasCTypes and
      hasPrivateSymbols and a simple test to ensure the native reader can access
      the summary information for the executable from the PDB.
      
      Original Differential Revision: https://reviews.llvm.org/D31059
      
      llvm-svn: 298623
      997a15c3
    • Matthew Simpson's avatar
      [LV] Vectorize GEPs · 4e7b71bc
      Matthew Simpson authored
      This patch adds support for vectorizing GEPs. Previously, we only generated
      vector GEPs on-demand when creating gather or scatter operations. All GEPs from
      the original loop were scalarized by default, and if a pointer was to be stored
      to memory, we would have to build up the pointer vector with insertelement
      instructions.
      
      With this patch, we will vectorize all GEPs that haven't already been marked
      for scalarization.
      
      The patch refines collectLoopScalars to more exactly identify the scalar GEPs.
      The function now more closely resembles collectLoopUniforms. And the patch
      moves vector GEP creation out of vectorizeMemoryInstruction and into the main
      vectorization loop. The vector GEPs needed for gather and scatter operations
      will have already been generated before vectoring the memory accesses.
      
      Differential Revision: https://reviews.llvm.org/D30710
      
      llvm-svn: 298620
      4e7b71bc
    • Simon Pilgrim's avatar
      [X86][SSE] Extract elements from narrower shuffle masks. · 1c048ab6
      Simon Pilgrim authored
      Add support for widening narrow shuffle masks so we can directly extract from the relevant input vector of the shuffle.
      
      llvm-svn: 298616
      1c048ab6
    • Matthew Simpson's avatar
      [LV] Delete unneeded scalar GEP creation code · 1fb40645
      Matthew Simpson authored
      The code for generating scalar base pointers in vectorizeMemoryInstruction is
      not needed. We currently scalarize all GEPs and maintain the scalarized values
      in VectorLoopValueMap. The GEP cloning in this unneeded code is the same as
      that in scalarizeInstruction. The test cases that changed as a result of this
      patch changed because we were able to reuse the scalarized GEP that we
      previously generated instead of cloning a new one.
      
      Differential Revision: https://reviews.llvm.org/D30587
      
      llvm-svn: 298615
      1fb40645
    • Tim Shen's avatar
      [PPC] Add generated tests for all atomic operations · ce26a45f
      Tim Shen authored
      Summary: Add tests for all atomic operations for powerpc64le, so that all changes can be easily examined.
      
      Reviewers: kbarton, hfinkel, echristo
      
      Subscribers: mehdi_amini, nemanjai, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D31285
      
      llvm-svn: 298614
      ce26a45f
    • Derek Schuff's avatar
      [WebAssembly] Fix import type to be signed LEBs · 9a4e45a0
      Derek Schuff authored
      This fix is a follow up a previous change with stored
      value types as signed integers in memory.
      
      In future, once the yaml<->wasm binary patche lands we
      can add test coverage for this kind of thing.
      
      Differential Revision: https://reviews.llvm.org/D31227
      
      Patch by Sam Clegg
      
      llvm-svn: 298612
      9a4e45a0
    • Sanjay Patel's avatar
      [x86] add memcmp tests, remove run · 8db22f90
      Sanjay Patel authored
      Add tests for vector lengths that could be handled without a libcall.
      
      There's an explicit test for 'nobuiltin', so there's not much value
      in a separate run that checks that same behavior over and over again.
      
      llvm-svn: 298611
      8db22f90
    • Adrian McCarthy's avatar
      Add option to control whether llvm-pdbdump outputs in color · 1aa207d4
      Adrian McCarthy authored
      Adds -color-output option to llvm-pdbdump pretty commands that lets the user
      specify whether the output should have color. The default depends on whether
      the output is going to a TTY (per prior discussion in
      https://reviews.llvm.org/D31246).
      
      This will enable tests that pipe llvm-pdbdump output to FileCheck to work
      across platforms without regard to the differences in ANSI codes.
      
      Differential Revision: https://reviews.llvm.org/D31263
      
      llvm-svn: 298610
      1aa207d4
    • Igor Breger's avatar
      [GlobalISel][X86] Support G_STORE/G_LOAD operation · a8ba572d
      Igor Breger authored
      Summary:
      1. Support pointer type as function argumnet and return value
      2. G_STORE/G_LOAD - set legal action for i8/i16/i32/i64/f32/f64/vec128
      3. RegisterBank - support typeless operations like G_STORE/G_LOAD, for scalar use GPR bank.
      4. Support instruction selection for G_LOAD/G_STORE
      
      Reviewers: zvi, rovka, ab, qcolombet
      
      Reviewed By: rovka
      
      Subscribers: llvm-commits, dberris, kristof.beyls, eladcohen, guyblank
      
      Differential Revision: https://reviews.llvm.org/D30973
      
      llvm-svn: 298609
      a8ba572d
    • Nirav Dave's avatar
      [SDAG] Fix zeroExtend assertion error · e9ca32ae
      Nirav Dave authored
      Move CombineTo preventing deleted node from being returned in
      visitZERO_EXTEND.
      
      Fixes PR32284.
      
      Reviewers: RKSimon, bogner
      
      Reviewed By: RKSimon
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D31254
      
      llvm-svn: 298604
      e9ca32ae
    • Vassil Vassilev's avatar
      Do not polute the source directory. · a2285ebd
      Vassil Vassilev authored
      When a python script is run, by default it creates the bytecode file if the directory is writable, and this ‘pollutes’ source folders.
      
      From python's help:
      -B Don’t write .py[co] files on import. See also PYTHONDONTWRITEBYTECODE.
      
      Patch by Pere Mato (D30604)!
      
      llvm-svn: 298603
      a2285ebd
    • Dehao Chen's avatar
      Do not set branch weight if the branch weight annotation is present. · 53a0c082
      Dehao Chen authored
      Summary: ThinLTO will annotate the CFG twice. If the branch weight is set by the first annotation, we should not set the branch weight again in the second annotation because the first annotation is more accurate as there is less optimization that could affect debug info accuracy.
      
      Reviewers: tejohnson, davidxl
      
      Reviewed By: tejohnson
      
      Subscribers: mehdi_amini, aprantl, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D31228
      
      llvm-svn: 298602
      53a0c082
    • Zvi Rackover's avatar
      X86FixupBWInsts: Minor cleanup. NFC · db4b0322
      Zvi Rackover authored
      Summary: Cleanup some remnants of code from when the X86FixupBWInsts pass did both forward liveness analysis and backward liveness analysis.
      
      Reviewers: MatzeB, myatsina, DavidKreitzer
      
      Reviewed By: MatzeB
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D31264
      
      llvm-svn: 298599
      db4b0322
    • Strahinja Petrovic's avatar
      [Mips] Emit the correct DINS variant · f9fa62e5
      Strahinja Petrovic authored
      This patch fixes emitting of correct variant of DINS instruction.
      
      Differential Revision: https://reviews.llvm.org/D30988
      
      llvm-svn: 298596
      f9fa62e5
    • Simon Pilgrim's avatar
      [X86][SSE] Tidyup canWidenShuffleElements. NFCI. · 8a18299f
      Simon Pilgrim authored
      Pull out mask elements at the start, allowing us to make the widening pattern matching more readable.
      
      llvm-svn: 298594
      8a18299f
    • Strahinja Petrovic's avatar
      [Mips] Fix for decoding DINS instruction - disassembler · cac14b53
      Strahinja Petrovic authored
      This patch fixes decoding of size and position for DINSM
      and DINSU instructions.
      
      Differential Revision: https://reviews.llvm.org/D31072
      
      llvm-svn: 298593
      cac14b53
    • Simon Pilgrim's avatar
    • Igor Breger's avatar
      [GlobalISel][X86] clang-format. NFC · 8a924bea
      Igor Breger authored
      llvm-svn: 298590
      8a924bea
Loading