Skip to content
  1. Aug 02, 2017
  2. Aug 01, 2017
    • Adrian Prantl's avatar
      Remove PrologEpilogInserter's usage of DBG_VALUE's offset field · 032d2381
      Adrian Prantl authored
      In the last half-dozen commits to LLVM I removed code that became dead
      after removing the offset parameter from llvm.dbg.value gradually
      proceeding from IR towards the backend. Before I can move on to
      DwarfDebug and friends there is one last side-called offset I need to
      remove:  This patch modifies PrologEpilogInserter's use of the
      DBG_VALUE's offset argument to use a DIExpression instead. Because the
      PrologEpilogInserter runs at the Machine level I had to play a little
      trick with a named llvm.dbg.mir node to get the DIExpressions to print
      in MIR dumps (which print the llvm::Module followed by the
      MachineFunction dump).
      
      I also had to add rudimentary DwarfExpression support to CodeView and
      as a side-effect also fixed a bug (CodeViewDebug::collectVariableInfo
      was supposed to give up on variables with complex DIExpressions, but
      would fail to do so for fragments, which are also modeled as
      DIExpressions).
      
      With this last holdover removed we will have only one canonical way of
      representing offsets to debug locations which will simplify the code
      in DwarfDebug (and future versions of CodeViewDebug once it starts
      handling more complex expressions) and make it easier to reason about.
      
      This patch is NFC-ish: All test case changes are for assembler
      comments and the binary output does not change.
      
      rdar://problem/33580047
      Differential Revision: https://reviews.llvm.org/D36125
      
      llvm-svn: 309751
      032d2381
    • Yan Wang's avatar
      [clang] Change the condition of unnecessary packed warning · d79f3f63
      Yan Wang authored
      Summary:
      Change the condition of this unnecessary packed warning. The packed is unnecessary when
      1. the alignment of the struct/class won't alter.
      2. the size is unchanged.
      3. the offset of each field is the same.
      
      Remove all field-level warning.
      
      Reviewers: chh, akyrtzi, rtrieu
      
      Reviewed By: chh
      
      Subscribers: rsmith, srhines, cfe-commits, xazax.hun
      
      Differential Revision: https://reviews.llvm.org/D34114
      
      llvm-svn: 309750
      d79f3f63
    • Vitaly Buka's avatar
      [sanitizer_common] Disable filesystem-related code for Fuchsia · 51ca757e
      Vitaly Buka authored
      Summary:
      Fuchsia doesn't support filesystem access per se at low level.
      So it won't use any of the filesystem-oriented code in sanitizer_common.
      
      Submitted on behalf of Roland McGrath.
      
      Reviewers: vitalybuka, alekseyshl, kcc
      
      Reviewed By: vitalybuka
      
      Subscribers: kubamracek, phosek, filcab, llvm-commits
      
      Tags: #sanitizers
      
      Differential Revision: https://reviews.llvm.org/D36029
      
      llvm-svn: 309749
      51ca757e
    • Haicheng Wu's avatar
      [AArch64] Fix a typo in isExtFreeImpl() · 50692a20
      Haicheng Wu authored
      next => not
      
      Differential Revision: https://reviews.llvm.org/D36104
      
      llvm-svn: 309748
      50692a20
    • Vedant Kumar's avatar
      [llvm-cov] Allow specifying distinct architectures for each loaded binary · 4b102c3d
      Vedant Kumar authored
      The coverage tool needs to know which slice to look at when it's handed
      a universal binary. Some projects need to look at aggregate coverage
      reports for a variety of slices in different binaries: this patch adds
      support for these kinds of projects to llvm-cov.
      
      rdar://problem/33579007
      
      llvm-svn: 309747
      4b102c3d
    • Eugene Zelenko's avatar
      [Hexagon] Fix some Clang-tidy modernize-use-using and Include What You Use... · 52889219
      Eugene Zelenko authored
      [Hexagon] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC).
      
      llvm-svn: 309746
      52889219
    • Vitaly Buka's avatar
      [sanitizer_common] Fuchsia support for interceptors · d4e03d59
      Vitaly Buka authored
      Summary:
      Actually Fuchsia non-support for interceptors.  Fuchsia doesn't use
      interceptors in the common sense at all.  Almost all system library
      functions don't need interception at all, because the system
      libraries are just themselves compiled with sanitizers enabled and
      have specific hook interfaces where needed to inform the sanitizer
      runtime about thread lifetimes and the like.  For the few functions
      that do get intercepted, they don't use a generic mechanism like
      dlsym with RTLD_NEXT to find the underlying system library function.
      Instead, they use specific extra symbol names published by the
      system library (e.g. __unsanitized_memcpy).
      
      Submitted on behalf of Roland McGrath.
      
      Reviewers: vitalybuka, alekseyshl, kcc, filcab
      
      Reviewed By: filcab
      
      Subscribers: kubamracek, phosek, filcab, llvm-commits
      
      Tags: #sanitizers
      
      Differential Revision: https://reviews.llvm.org/D36028
      
      llvm-svn: 309745
      d4e03d59
    • Martin Storsjö's avatar
      [AArch64] Rewrite stack frame handling for win64 vararg functions · eacf4e40
      Martin Storsjö authored
      The previous attempt, which made do with a single offset in
      computeCalleeSaveRegisterPairs, wasn't quite enough. The previous
      attempt only worked as long as CombineSPBump == true (since the
      offset would be adjusted later in fixupCalleeSaveRestoreStackOffset).
      
      Instead include the size for the fixed stack area used for win64
      varargs in calculations in emitPrologue/emitEpilogue. The stack
      consists of mainly three parts;
      - AFI->getLocalStackSize()
      - AFI->getCalleeSavedStackSize()
      - FixedObject
      
      Most of the places in the code which previously used the CSStackSize
      now use PrologueSaveSize instead, which is the sum of the latter
      two, while some cases which need exactly the middle one use
      AFI->getCalleeSavedStackSize() explicitly instead of a local variable.
      
      In addition to moving the offsetting into emitPrologue/emitEpilogue
      (which fixes functions with CombineSPBump == false), also set the
      frame pointer to point to the right location, where the frame pointer
      and link register actually are stored. In addition to the prologue/epilogue,
      this also requires changes to resolveFrameIndexReference.
      
      Add tests for a function that keeps a frame pointer and another one
      that uses a VLA.
      
      Differential Revision: https://reviews.llvm.org/D35919
      
      llvm-svn: 309744
      eacf4e40
    • Matt Arsenault's avatar
      AMDGPU: Fix handling of div_scale with undef inputs · 206f8263
      Matt Arsenault authored
      The src0 register must match src1 or src2, but if these
      were undefined they could end up using different implicit_defed
      virtual registers. Force these to use one undef vreg or pick the
      defined other register.
      
      Also fixes producing invalid nodes without the right number of
      inputs when src2 is undef.
      
      llvm-svn: 309743
      206f8263
    • Vitaly Buka's avatar
      [ubsan] Enable UBSan build for Fuchsia · 6886061d
      Vitaly Buka authored
      Submitted on behalf of Roland McGrath.
      
      Reviewers: vitalybuka, alekseyshl, kcc
      
      Reviewed By: vitalybuka
      
      Subscribers: srhines, kubamracek, mgorny, phosek, filcab, llvm-commits
      
      Tags: #sanitizers
      
      Differential Revision: https://reviews.llvm.org/D36033
      
      llvm-svn: 309742
      6886061d
    • Matt Arsenault's avatar
      Fix creating bitcasts with wrong address space · 7a124f3c
      Matt Arsenault authored
      In a future commit AMDGPU will start passing
      aggregates directly to more functions, triggering
      asserts in test/CodeGenOpenCL/addr-space-struct-arg.cl
      
      llvm-svn: 309741
      7a124f3c
    • Nirav Dave's avatar
      [DAG] Factor out common expressions. NFC. · dcc5afaa
      Nirav Dave authored
      llvm-svn: 309740
      dcc5afaa
    • Chad Rosier's avatar
      [Value Tracking] Default argument to true and rename accordingly. NFC. · dfd1de68
      Chad Rosier authored
      IMHO this is a bit more readable.
      
      llvm-svn: 309739
      dfd1de68
    • Johannes Altmanninger's avatar
      [clang-diff] Renames, NFC · 31b52d63
      Johannes Altmanninger authored
      llvm-svn: 309738
      31b52d63
    • Johannes Altmanninger's avatar
      [clang-diff] Move data declarations to the public header · 8b0e0663
      Johannes Altmanninger authored
      llvm-svn: 309737
      8b0e0663
    • Michael Kruse's avatar
      [Simplify] Rewrite redundant write detection algorithm. · bc88a78c
      Michael Kruse authored
      The previous algorithm was to search a writes and the sours of its value
      operand, and see whether the write just stores the same read value back,
      which includes a search whether there is another write access between
      them. This is O(n^2) in the max number of accesses in a statement
      (+ the complexity of isl comparing the access functions).
      
      The new algorithm is more similar to the one used for searching for
      overwrites and coalescable writes. It scans over all accesses in order
      of execution while tracking which array elements still have the same
      value since it was read. This is O(n), not counting the complexity
      within isl. It should be more reliable than trying to catch all
      non-conforming cases in the previous approach. It is also less code.
      
      We now also support if the write is a partial write of the read's
      domain, and to some extent non-affine subregions.
      
      Differential Revision: https://reviews.llvm.org/D36137
      
      llvm-svn: 309734
      bc88a78c
    • Matt Arsenault's avatar
      AMDGPU: Add test for r308774 · a5fcb83b
      Matt Arsenault authored
      llvm-svn: 309733
      a5fcb83b
    • Matt Arsenault's avatar
      AMDGPU: Initial implementation of calls · b62a4eb5
      Matt Arsenault authored
      Includes a hack to fix the type selected for
      the GlobalAddress of the function, which will be
      fixed by changing the default datalayout to use
      generic pointers for 0.
      
      llvm-svn: 309732
      b62a4eb5
    • Josh Gao's avatar
      Revert "Thread Safety Analysis: fix assert_capability." · 253be336
      Josh Gao authored
      This reverts commit rL309725.
      
      Broke test/Sema/attr-capabilities.c.
      
      llvm-svn: 309731
      253be336
Loading