1. Jun 07, 2024
  2. Jun 06, 2024
    • Jonas Devlieghere's avatar
    • Jonas Devlieghere's avatar
    • Chaitanya's avatar
      [AMDGPU] Update removeFnAttrFromReachable to accept array of Fn Attrs. (#94188) · 7573d5e4
      Chaitanya authored
      This PR updates removeFnAttrFromReachable in AMDGPUMemoryUtils to accept
      array of function attributes as argument.
      Helps to remove multiple attributes in one CallGraph walk.
      7573d5e4
    • Chen Zheng's avatar
      [AIX] use LIBPATH on AIX instead of LD_LIBRARY_PATH (#94602) · f882f8c2
      Chen Zheng authored
      
      
      LD_LIBRARY_PATH will become invalid when LIBPATH is also set on AIX.
      
      See below example on AIX:
      ```
      $ldd a.out
      a.out needs:
      	 /usr/lib/libc.a(shr.o)
      Cannot find libtest.a
      	 /unix
      	 /usr/lib/libcrypt.a(shr.o)
      
      $./a.out
      Could not load program ./a.out:
      	Dependent module libtest.a could not be loaded.
      Could not load module libtest.a.
      System error: No such file or directory
      
      $export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tmp
      $./a.out ; echo $?
      10
      
      $export LIBPATH=./
      $./a.out ; echo $?  >>>>>> Now LD_LIBRARY_PATH is not used by system loader
      Could not load program ./a.out:
      	Dependent module libtest.a could not be loaded.
      Could not load module libtest.a.
      System error: No such file or directory
      ```
      
      This breaks many AIX LIT cases on our downstream buildbots which sets
      LIBPATH.
      
      ---------
      
      Co-authored-by: default avatarAnh Tuyen Tran <34661776+anhtuyenibm@users.noreply.github.com>
      Co-authored-by: default avatarDavid Tenty <daltenty.dev@gmail.com>
      f882f8c2
    • Timm Bäder's avatar
      [clang][Interp] Always decay root array pointers to the first element · e9174ba7
      Timm Bäder authored
      This is similar to what the current interpreter does.
      e9174ba7
    • jensmassberg's avatar
      [clang] Fix handling of adding a file with the same name as an existing dir to VFS (#94461) · 09f19c73
      jensmassberg authored
      When trying to add a file to clang's VFS via `addFile` and a directory
      of the same name already exists, we run into a [out-of-bound
      access](https://github.com/llvm/llvm-project/blob/145815c180fc82c5a55bf568d01d98d250490a55/llvm/lib/Support/Path.cpp#L244).
      
      The problem is that the file name is [recognised as existing path](
      https://github.com/llvm/llvm-project/blob/145815c180fc82c5a55bf568d01d98d250490a55/llvm/lib/Support/VirtualFileSystem.cpp#L896)
      and thus continues to process the next part of the path which doesn't
      exist.
      
      This patch adds a check if we have reached the last part of the filename
      and return false in that case.
      This we reject to add a file if a directory of the same name already
      exists.
      
      This is in sync with [this
      check](https://github.com/llvm/llvm-project/blob/145815c180fc82c5a55bf568d01d98d250490a55/llvm/lib/Support/VirtualFileSystem.cpp#L903)
      that rejects adding a path if a file of the same name already exists.
      09f19c73
    • David Tenty's avatar
      [NFC][libc++][test][AIX] fix SIMD test XFAIL for clang before 19 (#94509) · df168427
      David Tenty authored
      058e4454 added an XFAIL for this test on AIX because of a backend
      limitation. That backend limitation
      has been resolved by 0295c2ad and will be available for clang 19, so we
      should update the test to
      limit the XFAIL to clang versions before that.
      df168427
    • Jon Roelofs's avatar
      [llvm][ScheduleDAG] Set a fixed size for Sched::Preference (#94523) · a71aecb0
      Jon Roelofs authored
      This trims off 8 bytes from llvm::SUnit:
      ```
      --- before	2024-06-05 12:13:00
      +++ after	2024-06-05 12:12:58
      @@ -1,65 +1,65 @@
       *** Dumping AST Record Layout
                0 | class llvm::SUnit
                0 |   SDNode * Node
                8 |   MachineInstr * Instr
               16 |   SUnit * OrigNode
               24 |   const MCSchedClassDesc * SchedClass
               32 |   class llvm::SmallVector<class llvm::SDep, 4> Preds
               32 |     class llvm::SmallVectorImpl<class llvm::SDep> (base)
               32 |       class llvm::SmallVectorTemplateBase<class llvm::SDep> (base)
               32 |         class llvm::SmallVectorTemplateCommon<class llvm::SDep> (base)
               32 |           class llvm::SmallVectorBase<uint32_t> (base)
               32 |             void * BeginX
               40 |             unsigned int Size
               44 |             unsigned int Capacity
               48 |     struct llvm::SmallVectorStorage<class llvm::SDep, 4> (base)
               48 |       char[64] InlineElts
              112 |   class llvm::SmallVector<class llvm::SDep, 4> Succs
              112 |     class llvm::SmallVectorImpl<class llvm::SDep> (base)
              112 |       class llvm::SmallVectorTemplateBase<class llvm::SDep> (base)
              112 |         class llvm::SmallVectorTemplateCommon<class llvm::SDep> (base)
              112 |           class llvm::SmallVectorBase<uint32_t> (base)
              112 |             void * BeginX
              120 |             unsigned int Size
              124 |             unsigned int Capacity
              128 |     struct llvm::SmallVectorStorage<class llvm::SDep, 4> (base)
              128 |       char[64] InlineElts
              192 |   unsigned int NodeNum
              196 |   unsigned int NodeQueueId
              200 |   unsigned int NumPreds
              204 |   unsigned int NumSuccs
              208 |   unsigned int NumPredsLeft
              212 |   unsigned int NumSuccsLeft
              216 |   unsigned int WeakPredsLeft
              220 |   unsigned int WeakSuccsLeft
              224 |   unsigned short NumRegDefsLeft
              226 |   unsigned short Latency
          228:0-0 |   _Bool isVRegCycle
          228:1-1 |   _Bool isCall
          228:2-2 |   _Bool isCallOp
          228:3-3 |   _Bool isTwoAddress
          228:4-4 |   _Bool isCommutable
          228:5-5 |   _Bool hasPhysRegUses
          228:6-6 |   _Bool hasPhysRegDefs
          228:7-7 |   _Bool hasPhysRegClobbers
          229:0-0 |   _Bool isPending
          229:1-1 |   _Bool isAvailable
          229:2-2 |   _Bool isScheduled
          229:3-3 |   _Bool isScheduleHigh
          229:4-4 |   _Bool isScheduleLow
          229:5-5 |   _Bool isCloned
          229:6-6 |   _Bool isUnbuffered
          229:7-7 |   _Bool hasReservedResource
      -       232 |   Sched::Preference SchedulingPref
      -   236:0-0 |   _Bool isDepthCurrent
      -   236:1-1 |   _Bool isHeightCurrent
      -       240 |   unsigned int Depth
      -       244 |   unsigned int Height
      -       248 |   unsigned int TopReadyCycle
      -       252 |   unsigned int BotReadyCycle
      -       256 |   const TargetRegisterClass * CopyDstRC
      -       264 |   const TargetRegisterClass * CopySrcRC
      -           | [sizeof=272, dsize=272, align=8,
      -           |  nvsize=272, nvalign=8]
      +       230 |   Sched::Preference SchedulingPref
      +   231:0-0 |   _Bool isDepthCurrent
      +   231:1-1 |   _Bool isHeightCurrent
      +       232 |   unsigned int Depth
      +       236 |   unsigned int Height
      +       240 |   unsigned int TopReadyCycle
      +       244 |   unsigned int BotReadyCycle
      +       248 |   const TargetRegisterClass * CopyDstRC
      +       256 |   const TargetRegisterClass * CopySrcRC
      +           | [sizeof=264, dsize=264, align=8,
      +           |  nvsize=264, nvalign=8]
      ```
      a71aecb0