Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AutoBump] Merge with 83891777 (May 16) (48) #307

Merged
merged 295 commits into from
Sep 3, 2024
This pull request is big! We’re only showing the most recent 250 commits.

Commits on May 14, 2024

  1. Fix incorrect codegen with respect to GEPs llvm#85333 (llvm#92047)

    As mentioned in llvm#68882 and
    https://discourse.llvm.org/t/rfc-replacing-getelementptr-with-ptradd/68699
    
    Gep arithmetic isn't consistent with different types. GVNSink didn't
    realize this and sank all geps as long as their operands can be wired
    via PHIs
    in a post-dominator.
    
    Fixes: llvm#85333
    Reapply: llvm#88440 after fixing the non-determinism issues in llvm#90995
    hiraditya authored May 14, 2024
    Configuration menu
    Copy the full SHA
    bf7a0f9 View commit details
    Browse the repository at this point in the history
  2. [mlir][llvm] Add llvm.vector.deinterleave2 intrinsic (llvm#91986)

    Adds the LLVM vector.deinterleave2 intrinsic to the MLIR LLVM dialect. The 
    deinterleave2 intrinsic takes a vector and returns two vectors with the first 
    having even elements and the second with odd elements from the input 
    vector. The inverse of vector.interleave2.
    mub-at-arm authored May 14, 2024
    Configuration menu
    Copy the full SHA
    e1685eb View commit details
    Browse the repository at this point in the history
  3. Cope with MCOperand null Insts (llvm#91794)

    MCOperand has a constructor that permits a nullptr MCInst, and BOLT makes use of that. Adjust MCOperand's dumper to permit such use.
    urnathan authored May 14, 2024
    Configuration menu
    Copy the full SHA
    cfa0947 View commit details
    Browse the repository at this point in the history
  4. [BOLT][NFC] Simplify CFG validation (llvm#91977)

    Remove 'Valid' local boolean that has a single use, and return directly instead.
    urnathan authored May 14, 2024
    Configuration menu
    Copy the full SHA
    725014d View commit details
    Browse the repository at this point in the history
  5. [Clang] Fix dependency computation for pack indexing expression (llvm…

    …#91933)
    
    Given `foo...[idx]` if idx is value dependent, the expression is type
    dependent.
    
    Fixes llvm#91885
    Fixes llvm#91884
    cor3ntin authored May 14, 2024
    Configuration menu
    Copy the full SHA
    312f83f View commit details
    Browse the repository at this point in the history
  6. [BOLT][NFC] Simplify successor check (llvm#91980)

    Remove excess parentheses and use `boolean ? true-case : false-case` idiom.
    urnathan authored May 14, 2024
    Configuration menu
    Copy the full SHA
    1aff294 View commit details
    Browse the repository at this point in the history
  7. [OpenACC] Fix ast-print of device_type clause

    When writing the test for this I seemingly forgot to put 'CHECK' on the
    lines, so I didn't notice that I was printing the identifiers as
    pointers rather than their names.  This patch corrects the tests and the
    print behavior.
    erichkeane committed May 14, 2024
    Configuration menu
    Copy the full SHA
    03eba20 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    e60b83a View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    d422e90 View commit details
    Browse the repository at this point in the history
  10. [mlir][ArmSME] Use liveness information in the tile allocator (llvm#9…

    …0448)
    
    This patch rewrites the ArmSME tile allocator to use liveness
    information to make better tile allocation decisions and improve the
    correctness of the ArmSME dialect. This algorithm used here is a linear
    scan over live ranges, where live ranges are assigned to tiles as they
    appear in the program (chronologically). Live ranges release their
    assigned tile ID when the current program point is passed their end.
    This is a greedy algorithm (which is mainly to keep the implementation
    relatively straightforward), and because it seems to be sufficient for
    most kernels (e.g. matmuls) that use ArmSME. The general steps of this
    are roughly from
    https://link.springer.com/content/pdf/10.1007/3-540-45937-5_17.pdf,
    though there have been a few simplifications and assumptions made for
    our use case.
    
    Hopefully, the only changes needed for a user of the ArmSME dialect is
    that:
    
    - `-allocate-arm-sme-tiles` will no longer be a standalone pass 
      - `-test-arm-sme-tile-allocation` is only for unit tests 
    - `-convert-arm-sme-to-llvm` must happen after `-convert-scf-to-cf` 
       - SME tile allocation is now part of the LLVM conversion
    
    By integrating this into the `ArmSME -> LLVM` conversion we can allow
    high-level (value-based) ArmSME operations to be side-effect-free, as we
    can guarantee nothing will rearrange ArmSME operations before we emit
    intrinsics (which could invalidate the tile allocation).
    
    The hope is for ArmSME operations to have no hidden state/side effects
    and allow easily lowering dialects such as `vector` and `arith` to SME,
    without making assumptions about how the input IR looks, as the
    semantics of the operations will be the same. That is no (new) side
    effects and the IR follows the rules of SSA (a value will never change).
    
    The aim is correctness, so we have a base for working on optimizations.
    MacDue authored May 14, 2024
    Configuration menu
    Copy the full SHA
    041baf2 View commit details
    Browse the repository at this point in the history
  11. [AArch64] Postcommit fixes for histogram intrinsic (llvm#92095)

    A buildbot with expensive checks enabled flagged some problems with my patch. There was also a post-commit nit on the langref changes.
    huntergr-arm authored May 14, 2024
    Configuration menu
    Copy the full SHA
    2b15c4a View commit details
    Browse the repository at this point in the history
  12. [PowerPC][test] Catch any exception when retrieving git revision (llv…

    …m#92004)
    
    This makes the `vc-rev-enabled` feature unsupported if we fail to
    retrieve the git revision for any reason, such as if git is not
    installed.
    jakeegan authored May 14, 2024
    Configuration menu
    Copy the full SHA
    d9db266 View commit details
    Browse the repository at this point in the history
  13. [Clang] Retain the angle loci for invented template parameters of con…

    …straints (llvm#92104)
    
    Clangd uses it to determine whether the argument is within the selection
    range.
    
    Fixes clangd/clangd#2033
    zyn0217 authored May 14, 2024
    Configuration menu
    Copy the full SHA
    8070b2d View commit details
    Browse the repository at this point in the history
  14. [Support] Add option to print SMDiagnostic into a buffer without the …

    …filename and location info (llvm#92050)
    artemcm authored May 14, 2024
    Configuration menu
    Copy the full SHA
    a4accdf View commit details
    Browse the repository at this point in the history
  15. [clang][SPIR-V] Always add convergence intrinsics (llvm#88918)

    PR llvm#80680 added bits in the codegen to lazily add convergence intrinsics
    when required. This logic relied on the LoopStack. The issue is when
    parsing the condition, the loopstack doesn't yet reflect the correct
    values, as expected since we are not yet in the loop.
    
    However, convergence tokens should sometimes already be available. The
    solution which seemed the simplest is to greedily generate the tokens
    when we generate SPIR-V.
    
    Fixes llvm#88144
    
    ---------
    
    Signed-off-by: Nathan Gauër <brioche@google.com>
    Keenuts authored May 14, 2024
    Configuration menu
    Copy the full SHA
    e08f1fd View commit details
    Browse the repository at this point in the history
  16. Update documentation for buffer fat pointers (llvm#92034)

    Now that we've got (minus some issues around datatypes and invariant
    loads) working lowerings for address space 7, update the table in the
    AMDGPU usage guide to properly indicate the nature of these address
    spaces.
    krzysz00 authored May 14, 2024
    Configuration menu
    Copy the full SHA
    ac0d415 View commit details
    Browse the repository at this point in the history
  17. [RISCV] Add X27 to SavedRegs when X26 is in SavedRegs for cm.push/pop (

    …llvm#92067)
    
    cm.push can't save X26 without also saving X27. This removes two other
    checks for this case.
    
    This causes CFI to be emitted since X27 is now explicitly a callee saved
    register.
    
    The affected tests use inline assembly to clobber X26 rather than the
    whole range of s0-s10.
    topperc authored May 14, 2024
    Configuration menu
    Copy the full SHA
    736ffdc View commit details
    Browse the repository at this point in the history
  18. [ORC] Loosen __objc_imageinfo flag merging to match ld (llvm#91767)

    Allow mixing objects with/without signed class ro data and category
    class properties as long as it happens before we register the metadata.
    These combinations are a warning in ld, not a hard error. The only case
    that is ABI-breaking is if we already registered with the feature
    enabled but later try to load an object that doesn't support it.
    
    rdar://127336061
    benlangmuir authored May 14, 2024
    Configuration menu
    Copy the full SHA
    2766f21 View commit details
    Browse the repository at this point in the history
  19. [LoongArch] Add test cases for div/mod to cover various extended comb…

    …inations of 32-bit integers. NFC
    heiher committed May 14, 2024
    Configuration menu
    Copy the full SHA
    82434c7 View commit details
    Browse the repository at this point in the history
  20. [LAA] refactor tryToCreateDiffCheck (NFC) (llvm#92110)

    tryToCreateDiffCheck has one caller, and exits early if CanUseDiffCheck
    is false. Hence, we can get/set CanUseDiffCheck in the caller to avoid
    wastefully calling tryToCreateDiffCheck. This patch is an NFC
    simplification of program logic.
    artagnon authored May 14, 2024
    Configuration menu
    Copy the full SHA
    08536b0 View commit details
    Browse the repository at this point in the history
  21. [AArch64] Remove redundant FDIV Combine. (llvm#91924)

    The target combine is no longer required because InstCombine will
    transform the DIV by a power of 2 into a multiply, so in practice
    this case will never trigger.
    
    Additionally, the generated code would have been incorrect for
    streaming(-compatible) functions, because it assumed NEON was available.
    sdesmalen-arm authored May 14, 2024
    Configuration menu
    Copy the full SHA
    3d6f18d View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    b2c5e9b View commit details
    Browse the repository at this point in the history
  23. [lldb] Fixed the test TestThreadStates when run with a remote target (l…

    …lvm#92086)
    
    self.wait_for_running_event(process) is always called after
    self.runCmd("continue"). It is strange to expect eStateConnected here.
    This test failed in case of a remote target. The correct state is
    eStateRunning. Removed incorrect checking.
    slydiman authored May 14, 2024
    Configuration menu
    Copy the full SHA
    0f17d9a View commit details
    Browse the repository at this point in the history
  24. [RISCV][CostModel] Add cost model for experimental.cttz.elts (llvm#91778

    )
    
    The cost of `experimental.cttz.elts` in RISC-V equals to the cost of
    vfirst when the zero_is_poison argument is true. Otherwise, we add
    additional costs of cmp + select to convert the -1 result from vfirst to
    EVL.
    mshockwave authored May 14, 2024
    Configuration menu
    Copy the full SHA
    4c68de5 View commit details
    Browse the repository at this point in the history
  25. [Clang][Sema] Earlier type checking for builtin unary operators (llvm…

    …#90500)
    
    Currently, clang postpones all semantic analysis of unary operators with
    operands of pointer/pointer to member/array/function type until
    instantiation whenever that type is dependent (e.g. `T*` where `T` is a
    type template parameter). Consequently, the uninstantiated AST nodes all
    have the type `ASTContext::DependentTy` (which, for the purposes of
    llvm#90152, is undesirable as that type may be the current instantiation!
    (e.g. `*this`))
    
    This patch moves the point at which we perform semantic analysis for
    such expression to be prior to instantiation.
    sdkrystian authored May 14, 2024
    Configuration menu
    Copy the full SHA
    8019cbb View commit details
    Browse the repository at this point in the history
  26. Restore llvm#91137 (llvm#92003)

    llvm#91137 reverted in llvm#92001
    
    A build error fix added in 28d5ece
    
    ---------
    
    Co-authored-by: Jeremy Kun <j2kun@users.noreply.github.com>
    j2kun and j2kun authored May 14, 2024
    Configuration menu
    Copy the full SHA
    2ff43ce View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    344c73e View commit details
    Browse the repository at this point in the history
  28. RISCVAsmParser: Make diagnostics more conventional

    Most diagnostics obey
    https://llvm.org/docs/CodingStandards.html#error-and-warning-messages
    but some diverge. Fix them.
    
    While here, adjust some diagnostics.
    
    Pull Request: llvm#92024
    MaskRay authored May 14, 2024
    Configuration menu
    Copy the full SHA
    5f7477a View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    1355dcb View commit details
    Browse the repository at this point in the history
  30. [mlir][flang] Improve handling of fortran module variables. (llvm#91604)

    Currently, only those global variables which are at compile unit scope
    are added to the 'globals' list of the DICompileUnit. This does not work
    for languages which support modules (e.g. Fortran) where hierarchy
    can be
    variable -> module -> compile unit.
    
    To fix this, if a variable scope points to a module, we walk one level
    up and see if module is in the compile unit scope.
    
    This was initially part of llvm#91582 which adds debug information for
    Fortran module variables. @kiranchandramohan pointed out that MLIR
    changes should go in separate PRs.
    abidh authored May 14, 2024
    Configuration menu
    Copy the full SHA
    77b80bd View commit details
    Browse the repository at this point in the history
  31. [RISCV] Only allow up to e64 in vsetvli (llvm#92010)

    These larger SEWs aren't in the ratified V spec. Thanks to dzaima and
    sorear on IRC for pointing this one out.
    
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    palmer-dabbelt authored May 14, 2024
    Configuration menu
    Copy the full SHA
    b04c07b View commit details
    Browse the repository at this point in the history
  32. [NFC][CallPromotionUtils]Extract a helper function versionCallSiteWit…

    …hCond from versionCallSite (llvm#81181)
    
    * This is to be used by llvm#81378
    to implement a variant of versionCallSite that compares vtables.
    * The parent patch is llvm#81051
    minglotus-6 authored May 14, 2024
    Configuration menu
    Copy the full SHA
    6c8ebc0 View commit details
    Browse the repository at this point in the history
  33. [clang-tidy] Ignore implicit casts with errors in bugprone-implicit-w…

    …idening-of-multiplication-result (llvm#92025)
    
    When expression got errors (missing typedef) and clang-tidy is compiled
    with asserts enabled, then we crash in this check on assert because type
    with errors is visible as an dependent one. This is issue caused by
    invalid input.
    
    But as there is not point to crash in such case and generate additional
    confusion, such expressions with errors will be now ignored.
    
    Fixes llvm#89515, llvm#55293
    PiotrZSL authored May 14, 2024
    Configuration menu
    Copy the full SHA
    54435b5 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    97e35e0 View commit details
    Browse the repository at this point in the history
  35. [LAA] Add tests showing unnecessary RT check due to applying loop guards

    Test courtesy to @bjope showing a regression due to
    ecae3ed.
    fhahn committed May 14, 2024
    Configuration menu
    Copy the full SHA
    86f655c View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    39d123f View commit details
    Browse the repository at this point in the history
  37. [RISCV][test] Precommit tests for byte store of -1

    Although we can't reduce the number of instructions, if we selected `li
    rd, -1` instead then this could be encoded in a 16-bit instruction.
    asb committed May 14, 2024
    Configuration menu
    Copy the full SHA
    de14b74 View commit details
    Browse the repository at this point in the history
  38. [RISCV] Improve constant materialisation for stores of i8 negative co…

    …nstants (llvm#92131)
    
    This follows the same pattern as 20e6265. Although we
    can't reduce the number of instructions used, if we are able to use a
    sign-extended 6-bit immediate then the 16-bit c.li instruction can be
    selected (thus saving code size). Although this _could_ be gated so it
    only happens if C is enabled, I've opted not to because at worst it's
    neutral and it doesn't seem helpful to add unnecessary divergence
    between the RVC and non-RVC paths.
    asb authored May 14, 2024
    Configuration menu
    Copy the full SHA
    90109d4 View commit details
    Browse the repository at this point in the history
  39. [VPlan] Relax over-aggressive assertion in VPTransformState::get().

    There are cases where a vector value has some users that demand the
    the single scalar value only (NeedsScalar), while other users demand the
    vector value (see attached test cases). In those cases, the NeedsScalar
    users should only demand the first lane.
    
    Fixes llvm#91883.
    fhahn committed May 14, 2024
    Configuration menu
    Copy the full SHA
    67d840b View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    f89b1b8 View commit details
    Browse the repository at this point in the history
  41. [llvm] Support fixed point multiplication on AArch64 (llvm#84237)

    Prior to this, fixed point multiplication would lead to this assertion
    error on AArhc64, armv8, and armv7.
    
    ```
     _Accum f(_Accum x, _Accum y) { return x * y; }
    
    // ./bin/clang++ -ffixed-point /tmp/test2.cc -c -S -o - -target aarch64 -O3
    clang++: llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:10245: void llvm::TargetLowering::forceExpandWideMUL(SelectionDAG &, const SDLoc &, bool, EVT, const SDValue, const SDValue, const SDValue, const SDValue, SDValue &, SDValue &) const: Assertion `Ret.getOpcode() == ISD::MERGE_VALUES && "Ret value is a collection of constituent nodes holding result."' failed.
    ```
    
    This path into forceExpandWideMUL should only be taken if we don't
    support [US]MUL_LOHI or MULH[US] for the operand size (32 in this case).
    But we should also check if we can just leverage regular wide
    multiplication. That is, extend the operands from 32 to 64, do a regular
    64-bit mul, then trunc and shift. These ops are certainly available on
    aarch64 but for wider types.
    PiJoules authored May 14, 2024
    Configuration menu
    Copy the full SHA
    19008d3 View commit details
    Browse the repository at this point in the history
  42. [mlir][test] Extend InferIntRangeInterface test Ops to arbitrary in…

    …ts (llvm#91850)
    
    This PR is in preparation to some extensions to the
    `InferIntRangeInterface` around the `nsw` and `nuw` flags supported in
    the `arith` dialect and LLVM.
    
    We provide some common inference logic for `index` and `arith` in
    `InferIntRangeCommon.h` but our Test Ops are currently fixed to `Index`
    Types. As we test the range inference for arith Ops, especially around
    the overflow behaviour, it's handy to have native support for the
    typical integer types in the test Ops.
    
    This patch
    1. Changes the Attributes of `test.with_bounds` ops from `Index` to
    `APInt` which matches the internal representation in
    `ConstantIntRanges`.
    2. Allows the use of `AnyInteger` in addition to `Index` for the
    operands and results of the test Ops. This now requires explicit
    specification of the type in the IR, where before `Index` was implicit.
    3. Requires bounds Attrs to be specified in the precision of the SSA
    value, eliminating any implicit truncation or extension. (*Could this
    lead to problems?*)
    ubfx authored May 14, 2024
    Configuration menu
    Copy the full SHA
    acd1007 View commit details
    Browse the repository at this point in the history
  43. Configuration menu
    Copy the full SHA
    80f8ae3 View commit details
    Browse the repository at this point in the history
  44. Allow passing creduce options through creduce-clang-crash.py (llvm#92141

    )
    
    This change allows us to pass creduce options to creduce-clang-crash.py
    script. With this, `--n` is no longer needed to specify the number of
    cores, so removed the flag.
    
    The motivation is
    llvm#87933 (comment)
    suggests that disabling creduce renaming passes helps people to further
    reduce crash manually.
    ZequanWu authored May 14, 2024
    Configuration menu
    Copy the full SHA
    5adfcb0 View commit details
    Browse the repository at this point in the history
  45. [LAA] Delay applying loop guards until after isSafeDependenceDistance.

    Applying the loop guards to the distance may prevent
    isSafeDependenceDistance from determining NoDep, unless loop guards are
    also applied to the backedge-taken-count.
    
    Instead of applying the guards to both Dist and the
    backedge-taken-count, just apply them after handling
    isSafeDependenceDistance and constant distances; there is no benefit to
    applying the guards before then.
    
    This fixes a regression flagged by @bjope due to
    ecae3ed.
    fhahn committed May 14, 2024
    Configuration menu
    Copy the full SHA
    179efe5 View commit details
    Browse the repository at this point in the history
  46. [Offload] Do not link every target for JIT (llvm#92013)

    Summary:
    The offload library supports basic JIT functionality, however we
    currently link against every single target even though only AMDGPU and
    NVPTX are supported. This somewhat bloats the dynamic library list, so
    we should constrain it to what's actually used.
    jhuber6 authored May 14, 2024
    Configuration menu
    Copy the full SHA
    302db1a View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    332f5e7 View commit details
    Browse the repository at this point in the history
  48. [github] Add keith to bazel owners (NFC) (llvm#92164)

    I'm interested in being CC'd on these changes
    keith authored May 14, 2024
    Configuration menu
    Copy the full SHA
    18ba0cc View commit details
    Browse the repository at this point in the history
  49. Configuration menu
    Copy the full SHA
    cf5db39 View commit details
    Browse the repository at this point in the history
  50. Configuration menu
    Copy the full SHA
    4cfe347 View commit details
    Browse the repository at this point in the history
  51. [AArch64][SME] Fix frame lowering not using a base pointer for SME fu…

    …nctions. (llvm#91643)
    
    The existing code is checking for the presence of the +sve subtarget
    feature
    when deciding to use a base pointer for the function, but this check
    doesn't
    work when only +sme is used.
    
    rdar://126878490
    aemerson authored May 14, 2024
    Configuration menu
    Copy the full SHA
    d4c86e7 View commit details
    Browse the repository at this point in the history
  52. Reapply "[Clang] Unify interface for accessing template arguments as …

    …written for class/variable template specializations (llvm#81642)" (llvm#91393)
    
    Reapplies llvm#81642, fixing the crash which occurs when running the lldb test suite.
    sdkrystian authored May 14, 2024
    Configuration menu
    Copy the full SHA
    1202837 View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    fb8f492 View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    baca93f View commit details
    Browse the repository at this point in the history
  55. Configuration menu
    Copy the full SHA
    f83df08 View commit details
    Browse the repository at this point in the history
  56. [lldb] Allow env override for LLDB_ARGDUMPER_PATH (llvm#91688)

    This mirrors the LLDB_DEBUGSERVER_PATH environment variable and allows
    you to have lldb-argdumper in a non-standard location and still use it
    at runtime.
    keith authored May 14, 2024
    Configuration menu
    Copy the full SHA
    f918c05 View commit details
    Browse the repository at this point in the history
  57. [TableGen][SubtargetEmitter] Refactor hasReadOfWrite to CodeGenProcMo…

    …del (llvm#92032)
    
    SubtargetEmitter::GenSchedClassTables takes a CodeGenProcModel, but
    calls hasReadOfWrite which loops over all ProcModels. We move
    hasReadOfWrite to CodeGenProcModel and remove the loop over all
    ProcModels. This leads to a 144% speedup on the RISC-V backend of our
    downstream.
    michaelmaitland authored May 14, 2024
    Configuration menu
    Copy the full SHA
    67beebf View commit details
    Browse the repository at this point in the history
  58. Read and store gnu build id from loaded core file (llvm#92078)

    As we have debuginfod as symbol locator available in lldb now, we want
    to make full use of it.
    In case of post mortem debugging, we don't always have the main
    executable available.
    However, the .note.gnu.build-id of the main executable(some other
    modules too), should be available in the core file, as those binaries
    are loaded in memory and dumped in the core file.
    
    We try to iterate through the NT_FILE entries, read and store the gnu
    build id if possible. This will be very useful as this id is the unique
    key which is needed for querying the debuginfod server.
    
    Test:
    Build and run lldb. Breakpoint set to
    https://github.com/llvm/llvm-project/blob/main/lldb/source/Plugins/SymbolLocator/Debuginfod/SymbolLocatorDebuginfod.cpp#L147
    Verified after this commit, module_uuid is the correct gnu build id of
    the main executable which caused the crash(first in the NT_FILE entry)
    GeorgeHuyubo authored May 14, 2024
    Configuration menu
    Copy the full SHA
    536abf8 View commit details
    Browse the repository at this point in the history
  59. Configuration menu
    Copy the full SHA
    5bf653c View commit details
    Browse the repository at this point in the history
  60. [BOLT][DWARF] Update DW_AT_comp_dir/DW_AT_dwo_name for DWO TUs (llvm#…

    …91486)
    
    Type unit DIE generated by clang contains DW_AT_comp_dir/DW_AT_dwo_name.
    This was added to clang to help LLDB to figure out where type unit come
    from when accessing an entry in a .debug_names accelerator table and
    type units in .dwp file.
    
    When BOLT writes out .dwo files it changes the name of them. User can
    also specify directory of where they can be written out. Added support
    to BOLT to update those attributes.
    ayermolo authored May 14, 2024
    Configuration menu
    Copy the full SHA
    99fad7e View commit details
    Browse the repository at this point in the history
  61. [RISC-V] remove I ext when E ext has been enabled (llvm#92070)

    After patch llvm#88805
    
    `I` Ext will be added automatically when we running the command like 
    `./build/bin/llc -mtriple=riscv32 -mattr=+e -target-abi ilp32e
    -verify-machineinstrs llvm/test/CodeGen/RISCV/zcmp-additional-stack.ll`
    
    it will generate 
    ```
    	.text
    	.attribute	4, 16
    	.attribute	5, "rv32i2p1_e2pe"
    	.file	"zcmp-additional-stack.ll"
    	.globl	func                            # -- Begin function func
    	.p2align	1
    	.type	func,@function
    ```
    
    This patch reset the I ext in FeatureBit when `+e` has been specify
    Xinlong-Wu authored May 14, 2024
    Configuration menu
    Copy the full SHA
    844355a View commit details
    Browse the repository at this point in the history
  62. [AMDGPU][True16] Add VOP1Inst_t16_with_profiles class (llvm#92184)

    NFC. Makes the VOP1Inst_t16 interface more generic to support future
    instructions cleanly.
    Sisyph authored May 14, 2024
    Configuration menu
    Copy the full SHA
    3ca428c View commit details
    Browse the repository at this point in the history
  63. [RISCV][LegalizeTypes] Add additional test coverage for type promotio…

    …n of VP_FSHL/FSHR. NFC
    
    There's a special path when the promoted type has an element size
    more than twice the size of the original type.
    topperc committed May 14, 2024
    Configuration menu
    Copy the full SHA
    e417e61 View commit details
    Browse the repository at this point in the history
  64. [LinkerWrapper] Add an overriding option for debugging (llvm#91984)

    Summary:
    One of the downsides of the linker wrapper is that it made debugging
    more difficult. It is very powerful in that it can resolve a lot of
    input matching and library handling that could not be done before.
    However, the old method allowed users to simply copy-paste the script
    files to modify the output and test it.
    
    This patch attempts to make it easier to debug changes by letting the
    user override all the linker inputs. That is, we provide a user-created
    binary that is treated like the final output of the device link step.
    The intended use-case is for using `-save-temps` to get some IR, then
    modifying the IR and sticking it back in to see if it exhibits the old
    failures.
    jhuber6 authored May 14, 2024
    Configuration menu
    Copy the full SHA
    4a17e86 View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    c5cd049 View commit details
    Browse the repository at this point in the history

Commits on May 15, 2024

  1. [ctx_profile] Profile reader and writer (llvm#91859)

    Utility converting a profile coming from `compiler_rt` to bitstream, and
    a reader.
    
    `PGOCtxProfileWriter::write` would be used as the `Writer` parameter for
    `__llvm_ctx_profile_fetch` API. This is expected to happen in user code,
    for example in the RPC hanler tasked with collecting a profile, and
    would look like this:
    
    ```
    // set up an output stream "Out", which could contain other stuff
    {
      // constructing the Writer will start the section, in Out, containing
      // the collected contextual profiles.
      PGOCtxProfWriter Writer(Out);
      __llvm_ctx_profile_fetch(&Writer, +[](void* W, const ContextNode &N) {
        reinterpret_cast<PGOCtxProfWriter*>(W)->write(N);
      });
      // Writer going out of scope will finish up the section.
    }
    ```
    
    The reader produces a data structure suitable for maintenance during IPO
    transformations.
    mtrofin authored May 15, 2024
    Configuration menu
    Copy the full SHA
    dfdc3dc View commit details
    Browse the repository at this point in the history
  2. Revert "[ctx_profile] Profile reader and writer" (llvm#92199)

    Reverts llvm#91859
    
    Buildbot failures.
    mtrofin authored May 15, 2024
    Configuration menu
    Copy the full SHA
    03c7458 View commit details
    Browse the repository at this point in the history
  3. [Transforms] Preserve inbounds attribute of transformed GEPs when fla…

    …ttening loops (llvm#86961)
    
    When flattening the loop, if the GEP was inbound, it should stay
    inbound, because the only thing that changed is how the pointers are
    calculated, not the elements being accessed.
    
    Proof: https://alive2.llvm.org/ce/z/dApMpQ
    AreaZR authored May 15, 2024
    Configuration menu
    Copy the full SHA
    4d1ecf1 View commit details
    Browse the repository at this point in the history
  4. [IR] Move GlobalValue::getGUID() out of line (NFC)

    Avoid including MD5.h in a core IR header.
    nikic committed May 15, 2024
    Configuration menu
    Copy the full SHA
    71fbbb6 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6642cc6 View commit details
    Browse the repository at this point in the history
  6. [Serialization] Read the initializer for interesting static variables…

    … before consuming it
    
    Close llvm#91418
    
    Since we load the variable's initializers lazily, it'd be problematic
    if the initializers dependent on each other. So here we try to load the
    initializers of static variables to make sure they are passed to code
    generator by order. If we read any thing interesting, we would consume
    that before emitting the current declaration.
    ChuanqiXu9 committed May 15, 2024
    Configuration menu
    Copy the full SHA
    11b0591 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    13b265c View commit details
    Browse the repository at this point in the history
  8. Revert "[Serialization] Read the initializer for interesting static v…

    …ariables before consuming it"
    
    This reverts commit 11b0591.
    
    The premerge bot is broken.
    joker-eph committed May 15, 2024
    Configuration menu
    Copy the full SHA
    eb10310 View commit details
    Browse the repository at this point in the history
  9. [ExceptionDemo] Correct and update example ExceptionDemo (llvm#69485)

    The ExceptionDemo example was no longer compiling (since llvm 14 at
    least). The PR makes the example work with the current API and also
    transition from MCJIT to ORC.
    Fixes llvm#63702
    epitavy authored May 15, 2024
    Configuration menu
    Copy the full SHA
    2ece5cc View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    72b2c37 View commit details
    Browse the repository at this point in the history
  11. [RISCV] Move RISCVInsertVSETVLI to after phi elimination (llvm#91440)

    Split off from llvm#70549, this patch moves RISCVInsertVSETVLI to after phi
    elimination where we exit SSA and need to move to LiveVariables.
    
    The motivation for splitting this off is to avoid the large scheduling
    diffs from moving completely to after regalloc, and instead focus on
    converting the pass to work on LiveIntervals.
    
    The two main changes required are updating VSETVLIInfo to store VNInfos
    instead of MachineInstrs, which allows us to still check for PHI defs in
    needVSETVLIPHI, and fixing up the live intervals of any AVL operands
    after inserting new instructions.
    
    On O3 the pass is inserted after the register coalescer, otherwise we
    end up with a bunch of COPYs around eliminated PHIs that trip up
    needVSETVLIPHI.
    
    Co-authored-by: Piyou Chen <piyou.chen@sifive.com>
    lukel97 and BeMg authored May 15, 2024
    Configuration menu
    Copy the full SHA
    1a58e88 View commit details
    Browse the repository at this point in the history
  12. [libc][errno] Remove non asm generic error number (llvm#92172)

    The following small thing caught my eye:
    
    1) `EILSEQ` is not part of the generic asm error number macros. See the
    [full list of generic asm errno
    codes](https://github.com/torvalds/linux/blob/4b95dc87362aa57bdd0dcbad109ca5e5ef3cbb6c/include/uapi/asm-generic/errno-base.h).
    AFAIK the generic asm errno numbers are common between different
    operating systems and architectures. `EILSEQ` is not part of this common
    set of errno's.
    
    2) `EILSEQ`'s value is wrong. During the addition of `EILSEQ` in
    https://reviews.llvm.org/D151129, the value `35` was probably chosen as
    its the consecutive number. This is not correct. The actual values can
    be looked up for example here:
    * [For Linux
    kernel](https://github.com/search?q=repo%3Atorvalds%2Flinux+EILSEQ&type=code&p=1):
    `EILSEQ = 84` (uapi; i.e. x86_64), `EILSEQ = 88` (mips), `EILSEQ = 47`
    (parisc)
    * [For Darwin
    kernel](https://github.com/apple-oss-distributions/xnu/blob/main/bsd/sys/errno.h#L237):
    `EILSEQ = 92`
    robincaloudis authored May 15, 2024
    Configuration menu
    Copy the full SHA
    a71e2b9 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    d3455f4 View commit details
    Browse the repository at this point in the history
  14. [RISCV] Make vsetvli in test not loop invariant. NFC (llvm#92094)

    The middle end will remove the inner vsetvli otherwise, and it's more
    typical to set the AVL to the remaining VL.
    
    This also prevents the test from showing up as a regression in llvm#91319
    lukel97 authored May 15, 2024
    Configuration menu
    Copy the full SHA
    77047e3 View commit details
    Browse the repository at this point in the history
  15. [polly] Port polly tests to use NPM (llvm#90632)

    Even as the NPM has been in use by Polly for a while now, the
    majority of the tests continue using the LPM passes. This patch
    ports the tests to use the NPM passes (for example, by replacing
    a flag such as -polly-detect with -passes=polly-detect following
    the NPM syntax for specifying passes) with some exceptions for
    some missing features in the new passes. Additionally, the lit
    substitution %loadPolly is replaced by the substitution of what
    was %loadNPMPolly and %loadNPMPolly is removed.
    rahulana-quic authored May 15, 2024
    Configuration menu
    Copy the full SHA
    74d91d9 View commit details
    Browse the repository at this point in the history
  16. InstCombine: Process addrspacecast uses in PointerReplacer (llvm#91953)

    This was looking through an addrspacecast, and not finding a later
    unfoldable cast to another address space. Fixes improperly deleting
    a required alloca + memcpy and introducing an illegal addrspacecast.
        
    This also required fixing some worklist management issues with
    addrspacecast, and assuming that only memcpy sources could need
    replacement.
        
    Regresses one test function, but this looks like it optimized
    before by accident. It never saw the pointer use by the call
    to readonly_callee, which should require insertion of a new cast.
        
    Fixes llvm#68120
    arsenm authored May 15, 2024
    Configuration menu
    Copy the full SHA
    847c83f View commit details
    Browse the repository at this point in the history
  17. Revert "[polly] Port polly tests to use NPM" (llvm#92215)

    Reverts llvm#90632.
    
    Causing failures on buildbots that dynamically load polly. Reverting
    while we sort it out.
    efriedma-quic authored May 15, 2024
    Configuration menu
    Copy the full SHA
    1539758 View commit details
    Browse the repository at this point in the history
  18. [analyzer] Treat break, continue, goto, and label statements as trivi…

    …al in WebKit checkers. (llvm#91873)
    
    Also allow CXXBindTemporaryExpr, which creates a temporary object with a
    non-trivial destructor, and add a few more std and WTF functions to the
    explicitly allowed list.
    rniwa authored May 15, 2024
    Configuration menu
    Copy the full SHA
    24180ea View commit details
    Browse the repository at this point in the history
  19. [libc][errno] Remove previously added errno numbers (llvm#92163)

    Introduced in llvm#91150. Not
    needed anymore as llvm#92041 fixed
    the root cause. `ENAMETOOLONG` and `EOVERFLOW` are well defined in
    `<linux/errno.h>`.
    
    Post mortem: Due to the previously missing inclusion of
    `<linux/errno.h>` (fixed with
    llvm#92041), I misinterpreted an
    undefined macro issue during the development of
    llvm#91150 as being caused by a
    missing definition rather than by the missing inclusion of the linux
    header. I realized too late that `ENAMETOOLONG` and `EOVERFLOW` were
    correctly defined in `<linux/errno.h>` and that it was my missing
    inclusion that caused the problem.
    robincaloudis authored May 15, 2024
    Configuration menu
    Copy the full SHA
    0980f71 View commit details
    Browse the repository at this point in the history
  20. InstCombine: Emit ldexp intrinsic in exp2->ldexp combine (llvm#92039)

    Prefer to emit the intrinsic over a libcall in the
    intrinsic or no-math-errno case.
    arsenm authored May 15, 2024
    Configuration menu
    Copy the full SHA
    d7bb072 View commit details
    Browse the repository at this point in the history
  21. [MLIR][LLVM] Improve atomic verifier to properly support larger types (

    …llvm#92120)
    
    This commit extends the verifier for atomics to properly verify larger
    types. Beforehand, the verifier strictly rejected larger integer types,
    while it now consults the data layout to determine if their bitsize is a
    power of two. This behavior reflects what LLVM's verifier is checking
    for.
    Dinistro authored May 15, 2024
    Configuration menu
    Copy the full SHA
    e621690 View commit details
    Browse the repository at this point in the history
  22. [SystemZ] Handle address clobbering in splitMove(). (llvm#92105)

    When expanding an L128 (which is used to reload i128) it is
    possible that the quadword destination register clobbers an
    address register. This patch adds an assertion against the case
    where both of the expanded parts clobber the address, and in the
    case where one of the expanded parts do so puts it last.
    
    Fixes llvm#91437
    JonPsson1 authored May 15, 2024
    Configuration menu
    Copy the full SHA
    d6ee7e8 View commit details
    Browse the repository at this point in the history
  23. [LLVM] Make sanitizers respect the disable_santizer_instrumentation a…

    …ttribute. (llvm#91732)
    
    `disable_sanitizer_instrumetation` is attached to functions that shall
    not be instrumented e.g. ifunc resolver because those run before
    everything is initialised.
    Some sanitizer already handles this attribute, this patch adds it to
    DataFLow and Coverage too.
    DanielKristofKiss authored May 15, 2024
    Configuration menu
    Copy the full SHA
    45726c1 View commit details
    Browse the repository at this point in the history
  24. Avoid partial munmap (llvm#92109)

    ...which caused issues like
    
    > ==42==ERROR: AddressSanitizer failed to deallocate 0x32 (50) bytes at
    address 0x117e0000 (error code: 28)
    > ==42==Cannot dump memory map on emscriptenAddressSanitizer: CHECK
    failed: sanitizer_common.cpp:81 "((0 && "unable to unmmap")) != (0)"
    (0x0, 0x0) (tid=288045824)
    > #0 0x14f73b0c in __asan::CheckUnwind()+0x14f73b0c
    (this.program+0x14f73b0c)
    > #1 0x14f8a3c2 in __sanitizer::CheckFailed(char const*, int, char
    const*, unsigned long long, unsigned long long)+0x14f8a3c2
    (this.program+0x14f8a3c2)
    > #2 0x14f7d6e1 in __sanitizer::ReportMunmapFailureAndDie(void*,
    unsigned long, int, bool)+0x14f7d6e1 (this.program+0x14f7d6e1)
    > #3 0x14f81fbd in __sanitizer::UnmapOrDie(void*, unsigned
    long)+0x14f81fbd (this.program+0x14f81fbd)
    > #4 0x14f875df in __sanitizer::SuppressionContext::ParseFromFile(char
    const*)+0x14f875df (this.program+0x14f875df)
    > #5 0x14f74eab in __asan::InitializeSuppressions()+0x14f74eab
    (this.program+0x14f74eab)
    > #6 0x14f73a1a in __asan::AsanInitInternal()+0x14f73a1a
    (this.program+0x14f73a1a)
    
    when trying to use an ASan suppressions file under Emscripten: Even
    though it would be considered OK by SUSv4, the Emscripten runtime states
    "We don't support partial munmapping" (see
    
    <emscripten-core/emscripten@f4115eb>
    "Implement MAP_ANONYMOUS on top of malloc in STANDALONE_WASM mode
    (llvm#16289)").
    
    Co-authored-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
    stbergmann and stbergmann authored May 15, 2024
    Configuration menu
    Copy the full SHA
    4688df6 View commit details
    Browse the repository at this point in the history
  25. [ASan] Remove COMPILER_RT_ASAN_SHADOW_SCALE_DEFINITION. (llvm#91832)

    Since the set of COMPILER_RT_ASAN_SHADOW_SCALE_DEFINITION is removed in
    commit 8421fa5,
    cleanup the use of COMPILER_RT_ASAN_SHADOW_SCALE_DEFINITION.
    Enna1 authored May 15, 2024
    Configuration menu
    Copy the full SHA
    73324cb View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    7f3ac51 View commit details
    Browse the repository at this point in the history
  27. [lldb/aarch64] Allow unaligned PC addresses below a trap handler (llv…

    …m#92093)
    
    The stack validation heuristic is counter-productive in this case, as
    the unaligned address is most likely the thing that caused the signal in
    the first place.
    labath authored May 15, 2024
    Configuration menu
    Copy the full SHA
    d12c48c View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    6479e3c View commit details
    Browse the repository at this point in the history
  29. [clang][Interp][NFC] Remove unnecessary if condition

    This is already in a if(isBlockPointer()) block.
    tbaederr committed May 15, 2024
    Configuration menu
    Copy the full SHA
    1d43ec8 View commit details
    Browse the repository at this point in the history
  30. [clang][Interp] Add basic support for AddrLabelExprs

    Just create a local variable for them.
    tbaederr committed May 15, 2024
    Configuration menu
    Copy the full SHA
    afba3da View commit details
    Browse the repository at this point in the history
  31. [analyzer] Refactor recognition of the errno getter functions (llvm#9…

    …1531)
    
    There are many environments where `errno` is a macro that expands to
    something like `(*__errno())` (different standard library
    implementations use different names instead of "__errno").
    
    In these environments the ErrnoModeling checker creates a symbolic
    region which will be used to represent the return value of this "get the
    location of errno" function.
    
    Previously this symbol was only created when the checker was able to
    find the declaration of the "get the location of errno" function; but
    this commit eliminates the complex logic that was responsible for this
    and always creates the symbolic region when `errno` is not available as
    a "regular" global variable.
    
    This significantly simplifies a code and only introduces a minimal
    performance reduction (one extra symbol) in the case when `errno` is not
    declared (neither as a variable nor as a function).
    
    
    In addition to this simplification, this commit specifies that the
    `CallDescription`s for the "get the location of errno" functions are
    matched in `CDM::CLibrary` mode. (This was my original goal, but I was
    sidetracked by resolving a FIXME above the `CallDescriptionSet` in
    `ErrnoModeling.cpp`.)
    
    This change is very close to being NFC, but it fixes weird corner cases
    like the handling of a C++ method that happens to be named "__errno()"
    (previously it could've been recognized as an errno location getter
    function).
    NagyDonat authored May 15, 2024
    Configuration menu
    Copy the full SHA
    ca4a405 View commit details
    Browse the repository at this point in the history
  32. [lldb] Disable unaligned-pc-sigbus.test on arm(32)

    I though the test could work there as well, but (of course) it does not,
    because the lowest bit just means "run the code as thumb".
    labath committed May 15, 2024
    Configuration menu
    Copy the full SHA
    f090801 View commit details
    Browse the repository at this point in the history
  33. [flang][Alias Analysis] not all block arguments are dummy arguments (l…

    …lvm#92156)
    
    Arguments to openmp regions should not be tagged as dummy arguments.
    This is particularly unsafe because these openmp blocks will eventually
    be inlined into the calling function, where they will trivially alias
    with other values inside of the calling function.
    
    This is probably a theoretical issue because the calls to openmp runtime
    function calls would act as barriers, preventing optimizations that are
    too aggressive. But a lot more thought would need to go into a bet like
    that.
    
    This came out of discussion on
    llvm#92036
    tblah authored May 15, 2024
    Configuration menu
    Copy the full SHA
    2f6c0e6 View commit details
    Browse the repository at this point in the history
  34. [CodeGen][ARM64EC][NFC] Factor out emitFunctionAlias and getSymbolFro…

    …mMetadata in emitFunctionEntryLabel. (llvm#92098)
    cjacek authored May 15, 2024
    Configuration menu
    Copy the full SHA
    f39e75b View commit details
    Browse the repository at this point in the history
  35. [Clang] Fix incorrect passing of _BitInt args (llvm#90741)

    This patch removes incorrect `byval` attribute from pointer argument
    passed with >128 bit long _BitInt types.
    Lukacma authored May 15, 2024
    Configuration menu
    Copy the full SHA
    421862f View commit details
    Browse the repository at this point in the history
  36. [VPlan] Update VPBlendRecipe codegen for for first-lane only.

    Update VPBlendRecipe::execute to support generating code for first-lane
    only. This fixes a crash in the newly added test
    @test_not_first_lane_only_wide_compare_incoming_order_swapped.
    fhahn committed May 15, 2024
    Configuration menu
    Copy the full SHA
    d187005 View commit details
    Browse the repository at this point in the history
  37. [LV] Add additional variants of tests with udiv/urem/sdiv/srem in TC.

    Add additional tests with udiv/urem/sdiv/srem in trip counts, where the
    divisor is constant.
    
    For llvm#92177.
    fhahn committed May 15, 2024
    Configuration menu
    Copy the full SHA
    b0a1ae2 View commit details
    Browse the repository at this point in the history
  38. [lldb] Document some more packets (llvm#92124)

    Comparing a bit of the mock GDB server code to what was in the document
    I found these:
    * QLaunchArch
    * qSpeedTest
    * qSymbol
    
    qSymbol is the most mysterious but it did have some examples in a
    comment so I've adapted that.
    DavidSpickett authored May 15, 2024
    Configuration menu
    Copy the full SHA
    b6f050f View commit details
    Browse the repository at this point in the history
  39. [lldb][test][FreeBSD] Fix some concurrent event tests (llvm#84155)

    A lot of `TestConcurrent*.py` expect one of the threads to crash, but we
    weren't checking for it properly.
    
    Possibly because signal reporting got better on FreeBSD at some point,
    and it now shows the same info as Linux does.
    
    ```
      lldb-api :: functionalities/inferior-changed/TestInferiorChanged.py
      lldb-api :: functionalities/inferior-crashing/TestInferiorCrashing.py
      lldb-api :: functionalities/inferior-crashing/TestInferiorCrashingStep.py
      lldb-api :: functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferior.py
      lldb-api :: functionalities/inferior-crashing/recursive-inferior/TestRecursiveInferiorStep.py
      lldb-api :: functionalities/thread/concurrent_events/TestConcurrentCrashWithBreak.py
      lldb-api :: functionalities/thread/concurrent_events/TestConcurrentCrashWithSignal.py
      lldb-api :: functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpoint.py
      lldb-api :: functionalities/thread/concurrent_events/TestConcurrentCrashWithWatchpointBreakpointSignal.py
    ```
    
    Fixes llvm#48777
    
    `TestConcurrentTwoBreakpointsOneSignal.py` no longer fails, at least on
    an AWS instance, so I've removed the xfail there.
    DavidSpickett authored May 15, 2024
    Configuration menu
    Copy the full SHA
    03bdfb6 View commit details
    Browse the repository at this point in the history
  40. [mlir][ods] Populate properties in generated builder (llvm#90430)

    Previously this was only populated in the create method later. This
    resolves some of invalid builder paths. This may also be sufficient that
    type inference functions no longer have to consider whether property
    conversion has happened (but haven't verified that yet).
    
    This also makes Attributes corresponding to Properties as optional
    inside the set from attributes method. Today that is in effect what
    happens with Property value initialization and folks use it to define
    custom C++ types whose default initialization is what they want. This is
    the behavior users get if they use properties directly. Propagating
    Attributes without allowing partial setting would require iterating over
    the dictionary attribute considering the properties of the op type that
    will be created. This could also have been an additional method
    generated or optional behavior on the set method. But doing it
    consistently seems better. In terms of whats lost, it doesn't seem like
    anything compared to the pure Property path where Property is default
    value initialized and then partially overwritten (this doesn't seem to
    buy anything else verification wise).
    
    Default valued Properties (as specified ODS side rather than C++ side)
    triggered error as the containing class was not yet complete but
    referenced nested class, so that we couldn't have default initializer
    for them in the parent class. Added an additional forwarding builder to
    avoid needing to update call sites. This could be split out to separate
    change.
    
    Inlined templated function in unit test that was only used once. Moved
    initialization earlier where seen.
    jpienaar authored May 15, 2024
    Configuration menu
    Copy the full SHA
    e67080d View commit details
    Browse the repository at this point in the history
  41. [LLVM][CodeGen][SVE] Improve custom lowering for EXTRACT_SUBVECTOR. (l…

    …lvm#90963)
    
    We can extract any legal fixed length vector from a scalable vector by
    using VECTOR_SPLICE.
    paulwalker-arm authored May 15, 2024
    Configuration menu
    Copy the full SHA
    7621a0d View commit details
    Browse the repository at this point in the history
  42. [lldb][Windows] Fixed tests TestPty and TestPtyServer (llvm#92090)

    The tests TestPty and TestPtyServer use the Unix specific python builtin
    module termios. They are failed in case of Windows host and Linux
    target. Disable them for Windows host too.
    slydiman authored May 15, 2024
    Configuration menu
    Copy the full SHA
    eacefba View commit details
    Browse the repository at this point in the history
  43. [AMDGPU][AsmParser][NFC] Eliminate Match_PreferE32. (llvm#92159)

    Was added in 88e0b25 and is unused
    since fcef407.
    kosarev authored May 15, 2024
    Configuration menu
    Copy the full SHA
    3c3f6d8 View commit details
    Browse the repository at this point in the history
  44. [flang][OpenMP] Remove allocate from taskgroup in test (llvm#92173)

    Remove the `allocate`, because it needs to be used together with a
    privatizing clause. The only such clause for `taskgroup` is
    `task_reduction`, but it's not yet supported.
    kparzysz authored May 15, 2024
    Configuration menu
    Copy the full SHA
    de18f5e View commit details
    Browse the repository at this point in the history
  45. [flang][OpenMP] Add -fopenmp-version=52 to teams.f90 (llvm#92180)

    One of the functions in the test has `teams if(...)`. The `if` clause
    was only allowed on the `teams` directive in OpenMP 5.2.
    kparzysz authored May 15, 2024
    Configuration menu
    Copy the full SHA
    e6ef836 View commit details
    Browse the repository at this point in the history
  46. [libc] Fix GPU test build error (llvm#92235)

    This fixes a build error on the AMDGPU buildbot introduced in PR
    llvm#92172
    jplehr authored May 15, 2024
    Configuration menu
    Copy the full SHA
    ccbf908 View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    1650f1b View commit details
    Browse the repository at this point in the history
  48. Configuration menu
    Copy the full SHA
    398162d View commit details
    Browse the repository at this point in the history
  49. [clang-tidy][NFC] replace comparison of begin and end iterators with …

    …range empty (llvm#91994)
    
    Improves readability by changing comparisons of `*_begin` and `*_end`
    iterators into `.empty()` on their range.
    5chmidti authored May 15, 2024
    Configuration menu
    Copy the full SHA
    3b5a121 View commit details
    Browse the repository at this point in the history
  50. [MC][X86] Cleanup check prefixes identified in llvm#92248

    Avoid using numbers as check prefix - replace with actual triple config names where possible
    RKSimon committed May 15, 2024
    Configuration menu
    Copy the full SHA
    8a71284 View commit details
    Browse the repository at this point in the history
  51. [X86] sibcall - cleanup check prefixes identified in llvm#92248

    Avoid using numbers as check prefix - replace with actual triple config names
    RKSimon committed May 15, 2024
    Configuration menu
    Copy the full SHA
    8987369 View commit details
    Browse the repository at this point in the history
  52. [clang-tidy] fix crash due to assumed callee in min-max-use-initializ…

    …er-list (llvm#91992)
    
    Previously, the call to `findArgs` for a `CallExpr` inside of a `min` or
    `max` call would call `findArgs` before checking if the argument is a
    call to `min` or `max`, which is what `findArgs` is expecting.
    The fix moves the name checking before the call to `findArgs`, such that
    only a `min` or `max` function call is used as an argument.
    
    Fixes llvm#91982 
    Fixes llvm#92249
    5chmidti authored May 15, 2024
    Configuration menu
    Copy the full SHA
    932f0de View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    83d9aa2 View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    d06270e View commit details
    Browse the repository at this point in the history
  55. [X86] patchable functions - cleanup check prefixes identified in llvm…

    …#92248
    
    Avoid using numbers as check prefix - replace with actual triple config names
    RKSimon committed May 15, 2024
    Configuration menu
    Copy the full SHA
    97418bb View commit details
    Browse the repository at this point in the history
  56. [X86] cmpxchg-clobber-flags.ll - cleanup check prefixes identified in l…

    …lvm#92248
    
    Avoid using numbers as check prefix - replace with actual triple config names
    RKSimon committed May 15, 2024
    Configuration menu
    Copy the full SHA
    96ac2e3 View commit details
    Browse the repository at this point in the history
  57. [X86] prefetch.ll - cleanup check prefixes identified in llvm#92248

    Avoid using leading numbers in check prefixes - replace with actual triple config names (and makes it easier to add X64 test coverage in a future commit).
    RKSimon committed May 15, 2024
    Configuration menu
    Copy the full SHA
    e26eacf View commit details
    Browse the repository at this point in the history
  58. [X86] avoid-sfb-g-no-change.mir - cleanup check prefixes identified in

    …llvm#92248
    
    Don't include "-LABEL" (or any other FileCheck modifier) in the core check prefix name
    RKSimon committed May 15, 2024
    Configuration menu
    Copy the full SHA
    3f07430 View commit details
    Browse the repository at this point in the history
  59. [X86] Cleanup check prefixes identified in llvm#92248

    Avoid using leading numbers in check prefixes - replace with actual triple config names.
    RKSimon committed May 15, 2024
    Configuration menu
    Copy the full SHA
    f8395f8 View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    b59760d View commit details
    Browse the repository at this point in the history
  61. [coro] Lower llvm.coro.await.suspend.handle to resume with tail call (

    llvm#89751)
    
    The C++ standard requires that symmetric transfer from one coroutine to
    another is performed via a tail call. Failure to do so is a miscompile
    and often breaks programs by quickly overflowing the stack.
    
    Until now, the coro split pass tried to ensure this in the
    `addMustTailToCoroResumes()` function by searching for
    `llvm.coro.resume` calls to lower as tail calls if the conditions were
    right: the right function arguments, attributes, calling convention
    etc., and if a `ret void` was sure to be reached after traversal with
    some ad-hoc constant folding following the call.
    
    This was brittle, as the kind of implicit variants required for a tail
    call to happen could easily be broken by other passes (e.g. if some
    instruction got in between the `resume` and `ret`), see for example
    9d1cb18 and
    284da04.
    
    Also the logic seemed backwards: instead of searching for possible tail
    call candidates and doing them if the circumstances are right, it seems
    better to start with the intention of making the tail calls we need, and
    forcing the circumstances to be right.
    
    Now that we have the `llvm.coro.await.suspend.handle` intrinsic (since
    f786881) which corresponds exactly to
    symmetric transfer, change the lowering of that to also include the
    `resume` part, always lowered as a tail call.
    zmodem authored May 15, 2024
    Configuration menu
    Copy the full SHA
    3bb3969 View commit details
    Browse the repository at this point in the history
  62. Fix bolt build with -DBUILD_SHARED_LIBS=ON after 71fbbb6

    Commit 71fbbb6 moved getGUID out of
    line in llvm/IR/GlobalValue, now users have to link LLVMCore to have
    the definition of it.
    
    /usr/bin/ld: CMakeFiles/LLVMBOLTRewrite.dir/PseudoProbeRewriter.cpp.o: in function `(anonymous namespace)::PseudoProbeRewriter::parsePseudoProbe()':
    PseudoProbeRewriter.cpp:(.text._ZN12_GLOBAL__N_119PseudoProbeRewriter16parsePseudoProbeEv+0x3d0): undefined reference to `llvm::GlobalValue::getGUID(llvm::StringRef)'
    /usr/bin/ld: CMakeFiles/LLVMBOLTRewrite.dir/PseudoProbeRewriter.cpp.o: in function `(anonymous namespace)::PseudoProbeRewriter::encodePseudoProbes()':
    PseudoProbeRewriter.cpp:(.text._ZN12_GLOBAL__N_119PseudoProbeRewriter18encodePseudoProbesEv+0x11a1): undefined reference to `llvm::GlobalValue::getGUID(llvm::StringRef)'
    collect2: error: ld returned 1 exit status
    make[2]: *** [tools/bolt/lib/Rewrite/CMakeFiles/LLVMBOLTRewrite.dir/build.make:275: lib/libLLVMBOLTRewrite.so.19.0git] Error 1
    kparzysz committed May 15, 2024
    Configuration menu
    Copy the full SHA
    95e307c View commit details
    Browse the repository at this point in the history
  63. [clang][SPARC] Treat empty structs as if it's a one-bit type in the CC (

    llvm#90338)
    
    Make sure that empty structs are treated as if it has a size of one bit
    in function parameters and return types so that it occupies a full
    argument and/or return register slot.
    
    This fixes crashes and miscompilations when passing and/or returning
    empty structs.
    
    Reviewed by: @s-barannikov
    koachan authored May 15, 2024
    Configuration menu
    Copy the full SHA
    c2fba6d View commit details
    Browse the repository at this point in the history
  64. [flang][OpenMP] Add private to allocate in parallel-sections.f90 (l…

    …lvm#92185)
    
    Add a privatizing clause to the construct that uses `allocate` clause.
    Amend the CHECK lines to reflect the expected output.
    kparzysz authored May 15, 2024
    Configuration menu
    Copy the full SHA
    97a3044 View commit details
    Browse the repository at this point in the history
  65. [Frontend][OpenMP] Privatizing clauses in construct decomposition (ll…

    …vm#92176)
    
    Add remaining clauses with the "privatizing" property to construct
    decomposition, specifically to the part handling the `allocate` clause.
    
    ---------
    
    Co-authored-by: Tom Eccles <t@freedommail.info>
    kparzysz and tblah authored May 15, 2024
    Configuration menu
    Copy the full SHA
    4ec4a8e View commit details
    Browse the repository at this point in the history
  66. [Frontend][OpenMP] Reduction modifier must be applied somewhere (llvm…

    …#92160)
    
    Detect the case when a reduction modifier ends up not being applied
    after construct decomposition, treat it as an error.
    
    This fixes a regression in the gfortran test suite after PR90098.
    kparzysz authored May 15, 2024
    Configuration menu
    Copy the full SHA
    8d386c6 View commit details
    Browse the repository at this point in the history
  67. [Coroutines] Remove unused function (NFC)

    llvm-project/llvm/lib/Transforms/Coroutines/CoroSplit.cpp:1223:1:
    error: unused function 'scanPHIsAndUpdateValueMap' [-Werror,-Wunused-function]
    scanPHIsAndUpdateValueMap(Instruction *Prev, BasicBlock *NewBlock,
    ^
    1 error generated.
    DamonFool committed May 15, 2024
    Configuration menu
    Copy the full SHA
    7c8176e View commit details
    Browse the repository at this point in the history
  68. Configuration menu
    Copy the full SHA
    466d266 View commit details
    Browse the repository at this point in the history
  69. [flang] Initial debug info support for local variables. (llvm#90905)

    We need the information in the `DeclareOp` to generate debug information
    for variables.  Currently, cg-rewrite removes the `DeclareOp`. As
    `AddDebugInfo` runs after that, it cannot process the `DeclareOp`. My
    initial plan was to make the `AddDebugInfo` pass run before the cg-rewrite
    but that has few issues.
        
    1. Initially I was thinking to use the memref op to carry the variable
    attr. But as @tblah suggested in the llvm#86939, it makes more sense to
    carry that information on `DeclareOp`. It also makes it easy to handle
    it in codegen and there is no special handling needed for arguments. For
    this reason, we need to preserve the `DeclareOp` till the codegen.
        
    2. Running earlier, we will miss the changes in passes that run between
    cg-rewrite and codegen.
        
    But not removing the DeclareOp in cg-rewrite has the issue that ShapeOp
    remains and it causes errors during codegen. To solve this problem, I
    convert DeclareOp to XDeclareOp in cg-rewrite instead of removing
    it. This was mentioned as possible solution by @jeanPerier in
    https://reviews.llvm.org/D136254
        
    The conversion follows similar logic as used for other operators in that
    file. The FortranAttr and CudaAttr are currently not converted but left
    as TODO when the need arise.
    
    Now `AddDebugInfo` pass can extracts information about local variables
    from `XDeclareOp` and creates `DILocalVariableAttr`. These are attached
    to `XDeclareOp` using `FusedLoc` approach. Codegen can use them to
    create `DbgDeclareOp`.  I have added tests that checks the debug
    information in mlir from and also in llvm ir.
    
    Currently we only handle very limited types. Rest are given a place
    holder type. The previous placeholder type was basic type with
    `DW_ATE_address` encoding. When variables are added, it started
    causing assertions in the llvm debug info generation logic for some
    types. It has been changed to an interger type to prevent these issues
    until we handle those types properly.
    abidh authored May 15, 2024
    Configuration menu
    Copy the full SHA
    61da636 View commit details
    Browse the repository at this point in the history
  70. [clang][analyzer] Fix a crash in alpha.unix.BlockInCriticalSection (l…

    …lvm#90030)
    
    When analyzing C code with function pointers the checker crashes because
    of how the implementation extracts `IdentifierInfo`. Without the fix, this
    test crashes.
    gamesh411 authored May 15, 2024
    Configuration menu
    Copy the full SHA
    eda098a View commit details
    Browse the repository at this point in the history
  71. [Clang] Use ULL for std::max constant argument to fix build failure.

    getKnownMinValue returns uint64_t, use ULL to make sure the second arg
    is also 64 bit.
    fhahn committed May 15, 2024
    Configuration menu
    Copy the full SHA
    da116bd View commit details
    Browse the repository at this point in the history
  72. [GVNHoist] Replace combineKnownMetadata with combineMetadataForCSE (l…

    …lvm#92197)
    
    There is no reason to call combineMetadata directly with a list of MD_
    nodes. The combineMetadataForCSE function handles all the metadata
    correctly
    
    Partially fixes: llvm#30866
    hiraditya authored May 15, 2024
    Configuration menu
    Copy the full SHA
    b42d245 View commit details
    Browse the repository at this point in the history
  73. Configuration menu
    Copy the full SHA
    8a4cbea View commit details
    Browse the repository at this point in the history
  74. [Support] Use malloc instead of non-throwing new (llvm#92157)

    When allocating a memory buffer, we use a non-throwing new so that we
    can explicitly handle memory buffers that are too large to fit into
    memory. However, when exceptions are disabled, LLVM installs a custom
    new handler
    
    (https://github.com/llvm/llvm-project/blob/90109d444839683b09f0aafdc50b749cb4b3203b/llvm/lib/Support/InitLLVM.cpp#L61)
    that explicitly crashes when we run out of memory
    
    (https://github.com/llvm/llvm-project/blob/de14b749fee41d4ded711e771e43043ae3100cb3/llvm/lib/Support/ErrorHandling.cpp#L188)
    and that means this particular out-of-memory situation cannot be
    gracefully handled.
    
    This was discovered while working on #embed
    (llvm#68620) on Windows and
    resulted in a crash rather than the preprocessor issuing a diagnostic as
    expected.
    
    This patch switches away from the non-throwing new to a call to malloc
    (and free), which will return a null pointer without calling a custom
    new handler. It is the only instance in Clang or LLVM that I could find
    which used a non-throwing new, so I did not think we would need anything
    more involved than this change.
    
    Testing this would be highly platform dependent and so it does not come
    with test coverage. And because it doesn't change behavior that users
    are likely to be able to observe, it does not come with a release note.
    AaronBallman authored May 15, 2024
    Configuration menu
    Copy the full SHA
    dceaa0f View commit details
    Browse the repository at this point in the history
  75. [flang][OpenMP] Add REQUIRES: asserts to test that relies on it

    This should fix failures in release builds.
    kparzysz committed May 15, 2024
    Configuration menu
    Copy the full SHA
    8ab753c View commit details
    Browse the repository at this point in the history
  76. Configuration menu
    Copy the full SHA
    413aaf1 View commit details
    Browse the repository at this point in the history
  77. [clang][Interp][NFC] Use a smaller default size for IntegralAP

    Since we later possibly initialize the value by using operator-new,
    we need the default value to _not_ allocate memory.
    tbaederr committed May 15, 2024
    Configuration menu
    Copy the full SHA
    28d5f79 View commit details
    Browse the repository at this point in the history
  78. Fix null pointer dereference in logging in mlir TransformOps (llvm#92237

    )
    
    A variable `typeConverterOp` may be nullptr after dynamic cast. There is
    a security guard for this, but during logging error message the variable
    getting dereferenced.
    Found with static analysis.
    apach301 authored May 15, 2024
    Configuration menu
    Copy the full SHA
    4527adc View commit details
    Browse the repository at this point in the history
  79. [X86][AMX] Fix a bug after llvm#83628 (llvm#91207)

    We need to check if `GR64Cand` a valid register before using it.
    
    Test is not needed since it's covered in llvm-test-suite.
    
    Fixes llvm#90954
    phoebewang authored May 15, 2024
    Configuration menu
    Copy the full SHA
    b576a6b View commit details
    Browse the repository at this point in the history
  80. Configuration menu
    Copy the full SHA
    bed5546 View commit details
    Browse the repository at this point in the history
  81. [BOLT][NFC] Add documentation on BOLT options (llvm#92117)

    Add .md file documentation with all BOLT options to display it more
    conveniently.
    ElvinaYakubova authored May 15, 2024
    Configuration menu
    Copy the full SHA
    dcf3102 View commit details
    Browse the repository at this point in the history
  82. [Clang][OpenMP] Fix runtime problem when explicit map both pointer an…

    …d pointee (llvm#92210)
    
    ponter int *p for following map, test currently crash.
    
      map(p, p[:100]) or map(p, p[1])
    
    Currly IR looks like
    // &p, &p, sizeof(int), TARGET_PARAM | TO | FROM
    // &p, p[0], 100sizeof(float) TO | FROM
    
    Worrking IR is
    // map(p, p[0:100]) to map(p[0:100])
    // &p, &p[0], 100*sizeof(float), TARGET_PARAM | TO | FROM | PTR_AND_OBJ
    
    The change is add new argument AreBothBasePtrAndPteeMapped in
    generateInfoForComponentList
    
    Use that to skip map for map(p), when processing map(p[:100]) generate
    map with right flag.
    jyu2-git authored May 15, 2024
    Configuration menu
    Copy the full SHA
    8e00703 View commit details
    Browse the repository at this point in the history
  83. [RISCV] Remove hasSideEffects=1 for vsetvli pseudos (llvm#91319)

    In a similar vein to llvm#90049, we currently model all of the effects of a
    vsetvli pseudo:
    
    * VL and VTYPE are marked as defs
    * VL preserving x0,x0 vsetvlis doesn't get emitted until
    RISCVInsertVSETVLI, and when they are they have implicit uses on VL
    * Regular vector pseudos are fully modelled too: Before
    RISCVInsertVSETVLI they can be moved between vsetvli pseudos because we
    will eventually insert vsetvlis to correct VL and VTYPE. Afterwards,
    they will have implicit uses on VL and VTYPE.
    
    Since we model everything we can remove hasSideEffects=1. This gives us
    some improvements like sinking in vsetvli-insert-crossbb.ll.
    
    We need to update RISCVDeadRegisterDefinitions to keep handling vsetvli
    pseudos since it only operates on instructions with unmodelled side
    effects.
    lukel97 authored May 15, 2024
    Configuration menu
    Copy the full SHA
    ff313ee View commit details
    Browse the repository at this point in the history
  84. Configuration menu
    Copy the full SHA
    74218a9 View commit details
    Browse the repository at this point in the history
  85. Configuration menu
    Copy the full SHA
    3a8d176 View commit details
    Browse the repository at this point in the history
  86. [clang-tidy] Fix crash in modernize-use-constraints (llvm#92019)

    Improved modernize-use-constraints check by fixing a crash that occurred
    in some scenarios and excluded system headers from analysis.
    
    Problem were with DependentNameTypeLoc having null type location as
    getQualifierLoc().getTypeLoc().
    
    Fixes llvm#91872
    PiotrZSL authored May 15, 2024
    Configuration menu
    Copy the full SHA
    ba34476 View commit details
    Browse the repository at this point in the history
  87. [clang-tidy] Add AllowImplicitlyDeletedCopyOrMove option to cppcoregu…

    …idelines-special-member-functions (llvm#71683)
    
    Improved cppcoreguidelines-special-member-functions check with a new
    option AllowImplicitlyDeletedCopyOrMove, which removes the requirement
    for explicit copy or move special member functions when they are already
    implicitly deleted.
    
    Closes llvm#62392
    PiotrZSL authored May 15, 2024
    Configuration menu
    Copy the full SHA
    54c6ee9 View commit details
    Browse the repository at this point in the history
  88. [clang] Store FPOptions earlier when parsing function (llvm#92146)

    After llvm#85605 ([clang] Set
    correct FPOptions if attribute 'optnone' presents) the current FP
    options in Sema are saved during parsing function because Sema can
    modify them if optnone is present. However they were saved too late, it
    caused fails in some cases when precompiled headers are used. This patch
    moves the storing earlier.
    spavloff authored May 15, 2024
    Configuration menu
    Copy the full SHA
    9bbefb7 View commit details
    Browse the repository at this point in the history
  89. [MC] Remove UseAssemblerInfoForParsing

    Commit 6c0665e
    (https://reviews.llvm.org/D45164) enabled certain constant expression
    evaluation for `MCObjectStreamer` at parse time (e.g. `.if` directives,
    see llvm/test/MC/AsmParser/assembler-expressions.s).
    
    `getUseAssemblerInfoForParsing` was added to make `clang -c` handling
    inline assembly similar to `MCAsmStreamer` (e.g. `llvm-mc -filetype=asm`),
    where such expression folding (related to
    `AttemptToFoldSymbolOffsetDifference`) is unavailable.
    
    I believe this is overly conservative. We can make some parse-time
    expression folding work for `clang -c` even if `clang -S` would still
    report an error, a MCAsmStreamer issue (we cannot print `.if`
    directives) that should not restrict the functionality of
    MCObjectStreamer.
    
    ```
    % cat b.cc
    asm(R"(
    .pushsection .text,"ax"
    .globl _start; _start: ret
    .if . -_start == 1
      ret
    .endif
    .popsection
    )");
    % gcc -S b.cc && gcc -c b.cc
    % clang -S -fno-integrated-as b.cc     # succeeded
    
    % clang -c b.cc     # succeeded with this patch
    % clang -S b.cc     # still failed
    <inline asm>:4:5: error: expected absolute expression
        4 | .if . -_start == 1
          |     ^
    1 error generated.
    ```
    
    Close llvm#62520
    Link: https://discourse.llvm.org/t/rfc-clang-assembly-object-equivalence-for-files-with-inline-assembly/78841
    
    Pull Request: llvm#91082
    MaskRay authored May 15, 2024
    Configuration menu
    Copy the full SHA
    03c53c6 View commit details
    Browse the repository at this point in the history
  90. [lld] Fix -ObjC load behavior with LTO (llvm#92162)

    When -ObjC is passed, the linker must force load any object files that
    contain special sections that store Objective-C / Swift information that
    is used at runtime.
    
    This should work regadless if input files are bitcode or native, but it
    was not working with bitcode. This is because the sections that identify
    an object file that should be loaded were inconsistent when dealing with
    a native file vs bitcode file. In particular, bitcode files were not
    searched for `__TEXT,__swift` prefixed sections, while native files
    were.
    
    This means LLD wasn't loading certain bitcode files and forcing the user
    to introduce --force-load to their linker invocation for that archive.
    
    Co-authored-by: Nuri Amari <nuriamari@fb.com>
    NuriAmari and Nuri Amari authored May 15, 2024
    Configuration menu
    Copy the full SHA
    141391a View commit details
    Browse the repository at this point in the history
  91. Configuration menu
    Copy the full SHA
    f0e79db View commit details
    Browse the repository at this point in the history
  92. [mlir] Fix the build after 03c53c6

    d0k committed May 15, 2024
    Configuration menu
    Copy the full SHA
    29c2475 View commit details
    Browse the repository at this point in the history
  93. Correct mismatched allocation/deallocation calls

    This amends dceaa0f because ASAN
    caught an issue where the allocation and deallocation were not properly
    paired: https://lab.llvm.org/buildbot/#/builders/239/builds/7001
    
    Use malloc and free throughout this file to ensure that all kinds of
    memory buffers use the proper pairing.
    AaronBallman committed May 15, 2024
    Configuration menu
    Copy the full SHA
    3f954f5 View commit details
    Browse the repository at this point in the history
  94. [Offload] Correctly reject building on unsupported architectures (llv…

    …m#92276)
    
    Summary:
    Previously we had this `LIBOMPTARGET_ENABLED` variable which controlled
    including `libomptarget`. This is now redundant since it's controlled by
    `LLVM_ENABLE_RUNTIMES`. However, this had the extra effect of not
    building it when given unsupported targets. THis was lost during the
    move to `offload`. This patch moves this logic back and makes the
    `offload` target just quit without doing anything if used on an
    unsupported architecture.
    
    llvm#91881
    llvm#91819
    
    ---------
    
    Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>
    jhuber6 and sylvestre authored May 15, 2024
    Configuration menu
    Copy the full SHA
    332de4b View commit details
    Browse the repository at this point in the history
  95. [clang] Don't assume location of compiler-rt for OpenBSD (llvm#92183)

    If the `/usr/lib/...` path where compiler-rt is conventionally installed
    on OpenBSD does not exist, fall back to the regular logic to find it.
    
    This is a minimal change to allow OpenBSD cross compilation from a
    toolchain that doesn't adopt all of OpenBSD's monorepo's conventions.
    Ericson2314 authored May 15, 2024
    Configuration menu
    Copy the full SHA
    be10746 View commit details
    Browse the repository at this point in the history
  96. [X86] EmitCmp - always use cmpw with foldable loads (llvm#92251)

    By default, EmitCmp avoids cmpw with i16 immediates due to 66/67h length-changing prefixes causing stalls, instead extending the value to i32 and using a cmpl with a i32 immediate, unless it has the TuningFastImm16 flag or we're building for optsize/minsize.
    
    However, if we're loading the value for comparison, the performance costs of the decode stalls are likely to be exceeded by the impact of the load latency of the folded load, the shorter encoding and not needing an extra register to store the ext-load.
    
    This matches the behaviour of gcc and msvc.
    
    Fixes llvm#90355
    RKSimon authored May 15, 2024
    Configuration menu
    Copy the full SHA
    e2d74a2 View commit details
    Browse the repository at this point in the history
  97. [lldb] Fixed the TestGdbRemoteCompletion test (llvm#92268)

    Do not try to run lldb-server on localhost in case of the remote target.
    slydiman authored May 15, 2024
    Configuration menu
    Copy the full SHA
    34f33ba View commit details
    Browse the repository at this point in the history
  98. [lldb][Windows] Fixed the test gdb_remote_client/TestGDBRemotePlatfor…

    …mFile (llvm#92088)
    
    The tests `test_file_permissions` and `test_file_permissions_fallback`
    are disabled for Windows target. These tests use MockGDBServerResponder
    and do not depend on the real target. These tests failed in case of
    Windows host and Linux target. Disable them for Windows host too.
    slydiman authored May 15, 2024
    Configuration menu
    Copy the full SHA
    fc1df55 View commit details
    Browse the repository at this point in the history
  99. [OpenMP] Add back in `ENABLE_LIBOMPTARGET' definition

    Summary:
    Even though we moved `libomptarget` this is still present in `omp.h` and
    can't be removed.
    jhuber6 committed May 15, 2024
    Configuration menu
    Copy the full SHA
    2ec8571 View commit details
    Browse the repository at this point in the history
  100. [flang][OpenMP] Don't pass clauses to op-generating functions anymore (

    …llvm#90108)
    
    Remove parameter `const List<Clause> &clauses` from functions that take
    construct queue. The clauses should now be accessed from the construct
    queue.
    kparzysz authored May 15, 2024
    Configuration menu
    Copy the full SHA
    4525f44 View commit details
    Browse the repository at this point in the history
  101. [lldb] Fixed the TestCompletion test running on a remote target (llvm…

    …#92281)
    
    Install the image to the remote target if necessary.
    slydiman authored May 15, 2024
    Configuration menu
    Copy the full SHA
    eb822dc View commit details
    Browse the repository at this point in the history
  102. [lldb] Fixed the TestNetBSDCore test (llvm#92285)

    TestNetBSDCore.py contains 3 classes with the same test names
    test_aarch64 and test_amd64. It causes conflicts because the same build
    dir. Add suffixes to avoid conflicts.
    slydiman authored May 15, 2024
    Configuration menu
    Copy the full SHA
    7645269 View commit details
    Browse the repository at this point in the history
  103. [lldb][Windows] Fixed the TestIOHandlerResizeNoEditline test (llvm#92286

    )
    
    This test caused python crash on Windows x86_64 host with the exit code
    0xC0000409 (STATUS_STACK_BUFFER_OVERRUN). Close the input stream before
    exit to avoid this crash.
    slydiman authored May 15, 2024
    Configuration menu
    Copy the full SHA
    d92c677 View commit details
    Browse the repository at this point in the history
  104. [nfc] Allow forwarding Error returns from Expected callers (llvm#…

    …92208)
    
    On a few compilers (clang 11/12 for example [1]), the following does not
    result in a copy elision, and since `Error`'s copy dtor is elided,
    results in a compile error:
    
    ```
      Expect<Something> foobar() {
        ...
        if (Error E = aCallReturningError())
          return E;
        ...
      }
    ```
    
    Moving `E` would, conversely, result in the pessimizing-move warning on
    more recent clangs ("moving a local object in a return statement
    prevents copy elision")
    
    We just need to make the `Expected` ctor taking an `Error` take it as a
    r-value reference.
    
    [1] https://lab.llvm.org/buildbot/#/builders/54/builds/10505
    mtrofin authored May 15, 2024
    Configuration menu
    Copy the full SHA
    217668f View commit details
    Browse the repository at this point in the history
  105. [RISCV] Remove unneeded casts from int64_t to uint64_t in RISCVMatInt…

    ….cpp. NFC
    
    Most of these were to avoid undefined behavior if a shift left
    changed the sign of the result. I don't think its possible to change
    the sign of the result here. We're shifting left by 12 after an arithmetic
    right shift by more than 12. The bits we are shifting out with the left
    shift are guaranteed to be sign bits.
    
    Also use SignExtend64<32> to force upper bits to all 1s instead of an
    Or. We know the value isUInt<32> && !isInt<32> which means bit 31 is set.
    topperc committed May 15, 2024
    Configuration menu
    Copy the full SHA
    0647d10 View commit details
    Browse the repository at this point in the history
  106. [LAA] Add tests with invariant dependences before strided ones.

    Add extra test coverage for loops with strided and invariant accesses to
    the same object.
    fhahn committed May 15, 2024
    Configuration menu
    Copy the full SHA
    ec36145 View commit details
    Browse the repository at this point in the history
  107. Reapply "[ctx_profile] Profile reader and writer" (llvm#92199)

    This reverts commit 03c7458.
    
    One of the problems was addressed in llvm#92208
    
    The other problem: needed to add `BitstreamReader` to the list of
    link deps of `LLVMProfileData`
    mtrofin committed May 15, 2024
    Configuration menu
    Copy the full SHA
    c19f2c7 View commit details
    Browse the repository at this point in the history
  108. [gn build] Port c19f2c7

    llvmgnsyncbot committed May 15, 2024
    Configuration menu
    Copy the full SHA
    df5804a View commit details
    Browse the repository at this point in the history
  109. Revert "[flang] Initial debug info support for local variables. (llvm…

    …#909… (llvm#92302)
    
    …05)"
    
    This reverts commit 61da636.
    
    Update llvm#90905 was causing many tests to fail.
    
    See comments in llvm#90905.
    psteinfeld authored May 15, 2024
    Configuration menu
    Copy the full SHA
    4683571 View commit details
    Browse the repository at this point in the history
  110. [lldb-dap] Include npm install in the extension installation steps (l…

    …lvm#92028)
    
    Otherwise the build step fails due to missing dependencies.
    walter-erquinigo authored May 15, 2024
    Configuration menu
    Copy the full SHA
    411bf38 View commit details
    Browse the repository at this point in the history
  111. Revert "Reapply "[ctx_profile] Profile reader and writer" (llvm#92199)"

    This reverts commit c19f2c7.
    
    Broke the gcc-7 bot.
    joker-eph committed May 15, 2024
    Configuration menu
    Copy the full SHA
    2c54bf4 View commit details
    Browse the repository at this point in the history
  112. [RISCV] Handle undef AVLs in RISCVInsertVSETVLI

    Before llvm#91440 a VSETVLIInfo would have had an IMPLICIT_DEF defining
    instruction, but now we look up a VNInfo which doesn't exist, which
    triggers an assertion failure. Mark these undef AVLs as AVLIsIgnored.
    lukel97 committed May 15, 2024
    Configuration menu
    Copy the full SHA
    9ae2177 View commit details
    Browse the repository at this point in the history
  113. [gn build] Port 2c54bf4

    llvmgnsyncbot committed May 15, 2024
    Configuration menu
    Copy the full SHA
    378c9e9 View commit details
    Browse the repository at this point in the history
  114. [clang] Add tests for CWG issues regarding completeness of types (llv…

    …m#92113)
    
    This patch covers the following Core issues:
    [CWG930](https://cplusplus.github.io/CWG/issues/930.html) "`alignof`
    with incomplete array type"
    [CWG1110](https://cplusplus.github.io/CWG/issues/1110.html) "Incomplete
    return type should be allowed in `decltype` operand"
    [CWG1340](https://cplusplus.github.io/CWG/issues/1340.html) "Complete
    type in member pointer expressions"
    [CWG1352](https://cplusplus.github.io/CWG/issues/1352.html)
    "Inconsistent class scope and completeness rules"
    [CWG1458](https://cplusplus.github.io/CWG/issues/1458.html) "Address of
    incomplete type vs `operator&()`"
    [CWG1824](https://cplusplus.github.io/CWG/issues/1824.html)
    "Completeness of return type vs point of instantiation"
    [CWG1832](https://cplusplus.github.io/CWG/issues/1832.html) "Casting to
    incomplete enumeration"
    [CWG2304](https://cplusplus.github.io/CWG/issues/2304.html) "Incomplete
    type vs overload resolution"
    [CWG2310](https://cplusplus.github.io/CWG/issues/2310.html) "Type
    completeness and derived-to-base pointer conversions"
    [CWG2430](https://cplusplus.github.io/CWG/issues/2430.html)
    "Completeness of return and parameter types of member functions"
    [CWG2512](https://cplusplus.github.io/CWG/issues/2512.html) "`typeid`
    and incomplete class types"
    [CWG2630](https://cplusplus.github.io/CWG/issues/2630.html) "Syntactic
    specification of class completeness"
    [CWG2718](https://cplusplus.github.io/CWG/issues/2718.html) "Type
    completeness for derived-to-base conversions"
    [CWG2857](https://cplusplus.github.io/CWG/issues/2857.html)
    "Argument-dependent lookup with incomplete class types"
    
    Current wording for CWG1110 came from
    [P0135R1](https://wg21.link/p0135R1) "Wording for guaranteed copy
    elision through simplified value categories".
    
    As a drive-by fix, I fixed incorrect status of CWG1815, test for which
    was added in llvm#87933. CC @yronglin
    Endilll authored May 15, 2024
    Configuration menu
    Copy the full SHA
    d542eb7 View commit details
    Browse the repository at this point in the history
  115. [libc] Fix GPU handling for unsupported backends (llvm#92271)

    Summary:
    If the user does not have the selected backend enabled, we should still
    be able to build the LLVM-IR an ddistribute it. This patch makes logic
    to suppress tests if the backend can't build it, as well as removing a
    flag for the building that's only present int he NVPTX backend.
    jhuber6 authored May 15, 2024
    Configuration menu
    Copy the full SHA
    64b3cdc View commit details
    Browse the repository at this point in the history
  116. Configuration menu
    Copy the full SHA
    4ab2ac2 View commit details
    Browse the repository at this point in the history
  117. "Reapply "[ctx_profile] Profile reader and writer" (llvm#92199)"

    This reverts commit 2c54bf4.
    
    Fixed gcc-7 issue.
    mtrofin committed May 15, 2024
    Configuration menu
    Copy the full SHA
    fc8775e View commit details
    Browse the repository at this point in the history
  118. [gn build] Port fc8775e

    llvmgnsyncbot committed May 15, 2024
    Configuration menu
    Copy the full SHA
    2fb9252 View commit details
    Browse the repository at this point in the history
  119. Configuration menu
    Copy the full SHA
    24c3926 View commit details
    Browse the repository at this point in the history
  120. [RISCV] Gate unratified profiles behind -menable-experimental-extensi…

    …ons (llvm#92167)
    
    As discussed in the last sync-up call, because these profiles are not
    yet finalised they shouldn't be exposed to users unless they opt-in to
    them (much like experimental extensions). We may later want to add a
    more specific flag, but reusing `-menable-experimental-extensions`
    solves the immediate problem.
    
    This is implemented using the new support for marking profiles s
    experimental added in llvm#91993 to move the unratified profiles to
    RISCVExperimentalProfile and making the necessary changes to logic in
    RISCVISAInfo to handle this.
    asb authored May 15, 2024
    Configuration menu
    Copy the full SHA
    891d687 View commit details
    Browse the repository at this point in the history
  121. [clang][dataflow] Fully support Environment construction for Stmt ana…

    …lysis. (llvm#91616)
    
    Assume in fewer places that the analysis is of a `FunctionDecl`, and
    initialize the `Environment` properly for `Stmt`s.
    
    Moves constructors for `Environment` to header to make it more obvious
    that there are only minor differences between them and very little
    initialization in the constructors.
    
    Tested with check-clang-tooling.
    bazuzi authored May 15, 2024
    Configuration menu
    Copy the full SHA
    80d9ae9 View commit details
    Browse the repository at this point in the history
  122. [NewPM] Add pass options for InternalizePass to preserve GVs. (llvm…

    …#91334)
    
    This PR adds a string interface to `InternalizePass`' `MustPreserveGV`
    option, which is a callback function to indicate if a GV is not to be
    internalized. This is for use in LLVM.jl, the Julia wrapper for LLVM,
    which uses the C API and is thus required to use the PassBuilder string
    API for building NewPM pipelines.
    maleadt authored May 15, 2024
    Configuration menu
    Copy the full SHA
    ee765b0 View commit details
    Browse the repository at this point in the history
  123. AMDGPU/gfx12: avoid crashing on legacy waitcnt intrinsics (llvm#92306)

    They *are* still accepted by the HW but have a conservative effect.
    
    Leave them untouched since handling them would complicate the logic a
    bit, and developers who code to such a low level really need to revisit
    what they're doing anyway.
    nhaehnle authored May 15, 2024
    Configuration menu
    Copy the full SHA
    ec1f28d View commit details
    Browse the repository at this point in the history
  124. [Offload][NFC] Fix warning messages in runtime

    Summary:
    These are lots of random warnings due to inconsistent initialization or
    signedness.
    jhuber6 committed May 15, 2024
    Configuration menu
    Copy the full SHA
    81d20d8 View commit details
    Browse the repository at this point in the history
  125. [RISCV] static_assert SupportedProfiles and SupportedExperimentalProf…

    …iles are sorted
    
    Just as we do for the arrays of extension names.
    asb committed May 15, 2024
    Configuration menu
    Copy the full SHA
    83f065d View commit details
    Browse the repository at this point in the history
  126. [bazel] Port llvm#92199

    MaskRay committed May 15, 2024
    Configuration menu
    Copy the full SHA
    e1ed138 View commit details
    Browse the repository at this point in the history
  127. [lldb] Support custom LLVM formatting for variables (llvm#91868)

    Re-apply llvm#81196, with a fix that handles the 
    absence of llvm formatting: 
    llvm@3ba650e
    b47d425f
    kastiglione authored May 15, 2024
    Configuration menu
    Copy the full SHA
    8530b1c View commit details
    Browse the repository at this point in the history
  128. [AArch64][SME] Remove Darwin compile error for ABI support routine ca…

    …lls.
    
    These are allowed for Darwin and use the same ABI.
    aemerson committed May 15, 2024
    Configuration menu
    Copy the full SHA
    1daa7fd View commit details
    Browse the repository at this point in the history
  129. Revert "[NewPM] Add pass options for InternalizePass to preserve GV…

    …s." (llvm#92321)
    
    Reverts llvm#91334
    
    This broke the gcc7 build.
    I suspect the issue is a mismatch on user-defined move constructor on
    the return: `return PreservedGVs;` does not match the return type of the
    function.
    joker-eph authored May 15, 2024
    Configuration menu
    Copy the full SHA
    537a94b View commit details
    Browse the repository at this point in the history
  130. Configuration menu
    Copy the full SHA
    f97f039 View commit details
    Browse the repository at this point in the history
  131. [bazel] Add new dependencies (llvm#92323)

    This also fixes building ... on Linux. Seems like target_compatible_with
    isn't enough but you also need a manual tag.
    keith authored May 15, 2024
    Configuration menu
    Copy the full SHA
    00179e9 View commit details
    Browse the repository at this point in the history
  132. [Coverage] Handle CoroutineSuspendExpr correctly (llvm#88898)

    This avoids visiting `co_await` or `co_yield` operand 5 times (it is
    repeated under transformed awaiter subexpression, and under
    `await_ready`, `await_suspend`, and `await_resume` generated call
    subexpressions).
    bolshakov-a authored May 15, 2024
    Configuration menu
    Copy the full SHA
    050593f View commit details
    Browse the repository at this point in the history
  133. [Coverage] Handle array decomposition correctly (llvm#88881)

    `ArrayInitLoopExpr` AST node has two occurences of its as-written
    initializing expression in its subexpressions through a non-unique
    `OpaqueValueExpr`. It causes double-visiting of the initializing
    expression if not handled explicitly, as discussed in llvm#85837.
    bolshakov-a authored May 15, 2024
    Configuration menu
    Copy the full SHA
    5ff6c65 View commit details
    Browse the repository at this point in the history
  134. [ELF,test] Fix FileCheck prefixes

    Most violations are stale and should be removed while a few can be
    adjusted.
    
    Reported at llvm#92238
    MaskRay committed May 15, 2024
    Configuration menu
    Copy the full SHA
    aa889d7 View commit details
    Browse the repository at this point in the history
  135. [lldb-dap] Support publishing to the VSCode market place (llvm#92320)

    Update the publisher and add a publish script that we can use from
    Github actions.
    JDevlieghere authored May 15, 2024
    Configuration menu
    Copy the full SHA
    0585eed View commit details
    Browse the repository at this point in the history
  136. [flang] New -fdebug-unparse-with-modules option (llvm#91660)

    This option is a compilation action that parses a source file and
    performs semantic analysis on it, like the existing -fdebug-unparse
    option does. Its output, however, is preceded by the effective contents
    of all of the non-intrinsic modules on which it depends but does not
    define, transitively preceded by the closure of all of those modules'
    dependencies.
    
    The output from this option is therefore the analyzed parse tree for a
    source file encapsulated with all of its non-intrinsic module
    dependencies. This output may be useful for extracting code from large
    applications for use as an attachment to a bug report, or as input to a
    test case reduction tool for problem isolation.
    klausler authored May 15, 2024
    Configuration menu
    Copy the full SHA
    e00a3cc View commit details
    Browse the repository at this point in the history
  137. [Clang][Sema] Do not mark template parameters in the exception specif…

    …ication as used during partial ordering (llvm#91534)
    
    We do not deduce template arguments from the exception specification
    when determining the primary template of a function template
    specialization or when taking the address of a function template.
    Therefore, this patch changes `isAtLeastAsSpecializedAs` such that we do
    not mark template parameters in the exception specification as 'used'
    during partial ordering (per [temp.deduct.partial]
    p12) to prevent the following from being ambiguous:
    
    ```
    template<typename T, typename U>
    void f(U) noexcept(noexcept(T())); // #1
    
    template<typename T>
    void f(T*) noexcept; // #2
    
    template<>
    void f<int>(int*) noexcept; // currently ambiguous, selects #2 with this patch applied 
    ```
    
    Although there is no corresponding wording in the standard (see core issue filed here
    cplusplus/CWG#537), this seems
    to be the intended behavior given the definition of _deduction
    substitution loci_ in [temp.deduct.general] p7 (and EDG does the same thing).
    sdkrystian authored May 15, 2024
    Configuration menu
    Copy the full SHA
    667d12f View commit details
    Browse the repository at this point in the history
  138. [flang] Fix purity checking for internal subprograms (llvm#91759)

    ELEMENTAL internal subprograms are pure unless explicitly IMPURE.
    klausler authored May 15, 2024
    Configuration menu
    Copy the full SHA
    325d1d0 View commit details
    Browse the repository at this point in the history
  139. [clang] Create new warning group for deprecation of '-fno-relaxed-tem…

    …plate-template-args' (llvm#92324)
    
    This allows the warning to be disabled in isolation, as it helps when
    treating them as errors.
    mizvekov authored May 15, 2024
    Configuration menu
    Copy the full SHA
    c227bf1 View commit details
    Browse the repository at this point in the history
  140. [flang] Always check procedure characterizability (llvm#92008)

    When a procedure is defined with a subprogram but never referenced in a
    compilation unit, it may not be characterized until lowering, and any
    errors in characterization then may crash the compiler. So always ensure
    that procedure definitions are characterizable in declaration checking.
    
    Fixes llvm#91845.
    klausler authored May 15, 2024
    Configuration menu
    Copy the full SHA
    7605ad8 View commit details
    Browse the repository at this point in the history
  141. [flang] Further work on relaxing BIND(C) enforcement (llvm#92029)

    When a BIND(C) interface or subprogram has a dummy argument whose
    derived type is not BIND(C) but meets the constraints and requirements
    of a BIND(C) type, accept it with a warning.
    klausler authored May 15, 2024
    Configuration menu
    Copy the full SHA
    463f58a View commit details
    Browse the repository at this point in the history
  142. [flang] Parse REDUCE clauses in !$CUF KERNEL DO (llvm#92154)

    A !$CUF KERNEL DO directive is allowed to have advisory REDUCE clauses
    similar to those in OpenACC and DO CONCURRENT. Parse and represent them.
    Semantic validation will follow.
    klausler authored May 15, 2024
    Configuration menu
    Copy the full SHA
    5bbb63b View commit details
    Browse the repository at this point in the history
  143. [flang] Prevent crash from unfoldable TRANSFER() (llvm#92282)

    When the MOLD= argument's type is polymorphic, the type of the result
    cannot be known at compilation time, so the call cannot be folded even
    when the SOURCE= is constant.
    
    Fixes llvm#92264.
    klausler authored May 15, 2024
    Configuration menu
    Copy the full SHA
    3ddfb68 View commit details
    Browse the repository at this point in the history
  144. [InstrProf] Fix bug when clearing traces with samples (llvm#92310)

    The `--temporal-profile-max-trace-length=0` flag in the `llvm-profdata
    merge` command is used to remove traces from a profile. There was a bug
    where traces would not be cleared if the profile was already sampled.
    This patch fixes that.
    ellishg authored May 15, 2024
    Configuration menu
    Copy the full SHA
    c87b1ca View commit details
    Browse the repository at this point in the history

Commits on May 16, 2024

  1. [ctx_profile] Follow the pattern elsewhere for choosing the block IDs

    This was an oversight in llvm#91859. Using the subblock ID mechanism
    other places that use the bitstream APIs (e.g. `BitstreamRemarkSerializer`) use.
    mtrofin committed May 16, 2024
    Configuration menu
    Copy the full SHA
    c00e012 View commit details
    Browse the repository at this point in the history
  2. [scudo] Move the chunk update into functions (llvm#83493)

    The code paths for mte enabled and disabled were interleaving and which
    increases the difficulty of reading each path in both source level and
    assembly level. In this change, we move the parts that they have
    different logic into functions and minor refactors on the code
    structure.
    ChiaHungDuan authored May 16, 2024
    Configuration menu
    Copy the full SHA
    772b1b0 View commit details
    Browse the repository at this point in the history
  3. [MCAsmParser] .rept/.irp/.irpc: remove excess tail EOL in expansion

    ```
    .irp foo,1
    nop
    .endr
    nop
    ```
    
    expands to an excess EOL between two nop lines. Remove the excess EOL.
    MaskRay committed May 16, 2024
    Configuration menu
    Copy the full SHA
    c6e787f View commit details
    Browse the repository at this point in the history
  4. [memprof] Pass FrameIdConverter and CallStackIdConverter by reference (

    …llvm#92327)
    
    CallStackIdConverter sets LastUnmappedId when a mapping failure
    occurs.  Now, since toMemProfRecord takes an instance of
    CallStackIdConverter by value, namely std::function, the caller of
    toMemProfRecord never receives the mapping failure that occurs inside
    toMemProfRecord.  The same problem applies to FrameIdConverter.
    
    The patch fixes the problem by passing FrameIdConverter and
    CallStackIdConverter by reference, namely llvm::function_ref.
    
    While I am it, this patch deletes the copy constructor and copy
    assignment operator to avoid accidental copies.
    kazutakahirata authored May 16, 2024
    Configuration menu
    Copy the full SHA
    26fabdd View commit details
    Browse the repository at this point in the history
  5. Revert "[MC] Remove UseAssemblerInfoForParsing"

    This reverts commit 03c53c6.
    
    This causes very large compile-time regressions in some cases,
    e.g. sqlite3 at O0 regresses by 5%.
    nikic committed May 16, 2024
    Configuration menu
    Copy the full SHA
    fa750f0 View commit details
    Browse the repository at this point in the history
  6. Merge sourcelocation in CSEMIRBuilder::getDominatingInstrForID. (llvm…

    …#90922)
    
    Make sure to merge the sourcelocation of the Dominating Instruction that
    is hoisted in a basic block in the CSEMIRBuilder in the legalizer pass.
    
    If this is not done, we can have a incorrect line table entry that makes
    the instruction pointer jump around.
    
    For example the line table without this patch looks like:
    
    ```
    Address            Line   Column File   ISA Discriminator OpIndex Flags
    ------------------ ------ ------ ------ --- ------------- ------- -------------
    0x0000000000000000      0      0      1   0             0       0  is_stmt
    0x0000000000000010     11     14      1   0             0       0  is_stmt prologue_end
    0x0000000000000028     12      1      1   0             0       0  is_stmt
    0x000000000000002c     12     15      1   0             0       0
    0x000000000000004c     12     13      1   0             0       0
    0x000000000000005c     13      1      1   0             0       0  is_stmt
    0x0000000000000064     12     13      1   0             0       0  is_stmt
    0x000000000000007c     13      7      1   0             0       0  is_stmt
    0x00000000000000c8     13      1      1   0             0       0
    0x00000000000000e8     13      1      1   0             0       0  epilogue_begin
    0x00000000000000f8     13      1      1   0             0       0  end_sequence
    ```
    
    The line table entry for 0x000000000000005c should be 0
    
    After this patch, the line table looks like:
    
    ```
    Address            Line   Column File   ISA Discriminator OpIndex Flags
    ------------------ ------ ------ ------ --- ------------- ------- -------------
    0x0000000000000000      0      0      1   0             0       0  is_stmt
    0x0000000000000010     11     14      1   0             0       0  is_stmt prologue_end
    0x0000000000000028     12      1      1   0             0       0  is_stmt
    0x000000000000002c     12     15      1   0             0       0 
    0x000000000000004c     12     13      1   0             0       0 
    0x000000000000005c      0      0      1   0             0       0 
    0x0000000000000064     12     13      1   0             0       0 
    0x000000000000007c     13      7      1   0             0       0  is_stmt
    0x00000000000000c8     13      1      1   0             0       0 
    0x00000000000000e8     13      1      1   0             0       0  epilogue_begin
    0x00000000000000f8     13      1      1   0             0       0  end_sequence
    ```
    rastogishubham authored May 16, 2024
    Configuration menu
    Copy the full SHA
    a9763de View commit details
    Browse the repository at this point in the history
  7. [analyzer] Check C++ base or member initializer in WebKit checkers. (l…

    …lvm#92220)
    
    Co-authored-by: Ryosuke Niwa <rniwa@apple.com>
    rniwa and Ryosuke Niwa authored May 16, 2024
    Configuration menu
    Copy the full SHA
    72200fc View commit details
    Browse the repository at this point in the history
  8. [LoopUnroll] Clamp PartialThreshold for large LoopMicroOpBufferSize (l…

    …lvm#67657)
    
    The znver3/znver4 scheduler models are outliers, specifying very large
    LoopMicroOpBufferSizes at 512, while typical values for other subtargets
    are on the order of ~50. Even if this information is
    micro-architecturally correct (*), this does not mean that we want to
    runtime unroll all loops to a size that completely fills the loop
    buffer. Unless this is the single hot loop in the entire application,
    the massive code size increase will bust the micro-op and instruction
    caches.
    
    Protect against this by clamping to the default PartialThreshold of 150,
    which is the same as the default full-unroll threshold and half the
    aggressive full-unroll threshold. Allowing more partial unrolling than
    full unrolling certainly does not make sense.
    
    (*) I strongly doubt that this is actually correct -- I believe this may
    derive from an incorrect reading of Agner Fog's micro-architecture
    guide. The number 4096 that was originally used here is the size of the
    general micro-op cache, not that of a loop buffer. A separate loop
    buffer is not listed for the Zen microarchitecture. Comparing this to
    the listing for Skylake, it has a 1536 micro-op buffer, but only a 64
    micro-op loopback buffer, with a note that it's rarely fully utilized.
    Our scheduling model specifies LoopMicroOpBufferSize of 50 in that case.
    nikic authored May 16, 2024
    Configuration menu
    Copy the full SHA
    f0b3654 View commit details
    Browse the repository at this point in the history
  9. [OpenMP] Fix intermediate header locations for OpenMP

    Summary:
    A previous patch moved the code here and accidentally overrwrote the
    include path that the LSP interface used. This caused incorrect errors
    when using clangd with the offload project. This patch removes the
    unnecessary header and makes sure we include the correct folder.
    jhuber6 committed May 16, 2024
    Configuration menu
    Copy the full SHA
    f60c699 View commit details
    Browse the repository at this point in the history
  10. Reapply "[Clang][Sema] Earlier type checking for builtin unary operat…

    …ors (llvm#90500)" (llvm#92283)
    
    This patch reapplies llvm#90500, addressing a bug which caused binary
    operators with dependent operands to be incorrectly rebuilt by
    `TreeTransform`.
    sdkrystian authored May 16, 2024
    Configuration menu
    Copy the full SHA
    1595988 View commit details
    Browse the repository at this point in the history
  11. [Serialization] Read the initializer for interesting static variables…

    … before consuming it (llvm#92218)
    
    Close llvm#91418
    
    Since we load the variable's initializers lazily, it'd be problematic if
    the initializers dependent on each other.
    
    For example,
    
    ```
    SomeType a = ...;
    SomeType b = a;
    ```
    
    Previously, when we load variable `b`, we need to load the initializer,
    then we need to load `a`. We can only mark the variable `b` as loaded
    after we load `a`. Then `a` is always initialized before `b`. However,
    it is not true after we implement lazy loading for initializers.
    
    So here we try to load the initializers of static variables to make sure
    they are passed to code generator by order. If we read any thing
    interesting, we would consume that before emitting the current
    declaration.
    ChuanqiXu9 authored May 16, 2024
    Configuration menu
    Copy the full SHA
    3a4c1b9 View commit details
    Browse the repository at this point in the history
  12. [AArch64][GISel] Fold COPY(y:gpr, DUP(x:fpr, i)) -> UMOV(y:gpr, x:fpr…

    …, i) (llvm#89017)
    
    This patch adds a peephole to AArch64PostSelectOptimize for codegen
    that is caused by RegBankSelect limiting G_EXTRACT_VECTOR_ELT
    only to FPR registers in both the input and output registers. This can
    cause a generation of COPY from FPR to GPR when, for example, the
    output register of the G_EXTRACT_VECTOR_ELT is used in a branch
    condition.
    
    This was noticed when looking at codegen differences between SDAG and GI
    for the s1279 kernel in the TSVC benchmark.
    dc03-work authored May 16, 2024
    Configuration menu
    Copy the full SHA
    1dd0d3c View commit details
    Browse the repository at this point in the history
  13. [SeparateConstOffsetFromGEP] Add additional inbounds preservation tes…

    …ts (NFC)
    
    Adding these for NVPTX because for AMDGPU the problematic -1 case
    does not get reordered in the first place.
    nikic committed May 16, 2024
    Configuration menu
    Copy the full SHA
    31c9038 View commit details
    Browse the repository at this point in the history
  14. [SeparateConstOffsetFromGEP] Check correct index for non-negativity

    We were checking the index of GEP twice, instead of checking both
    GEP and PtrGEP.
    nikic committed May 16, 2024
    Configuration menu
    Copy the full SHA
    b4d1a60 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    83e61d0 View commit details
    Browse the repository at this point in the history
  16. [Clang] Disallow VLA type compound literals (llvm#91891)

    C99-C23 6.5.2.5 says: The type name shall specify an object type or an
    array of unknown size, but not a variable length array type.
    
    Fixes llvm#89835.
    J-MR-T authored May 16, 2024
    Configuration menu
    Copy the full SHA
    e91ea1b View commit details
    Browse the repository at this point in the history
  17. [MCAsmParser] Simplify. NFC

    MaskRay committed May 16, 2024
    Configuration menu
    Copy the full SHA
    90fbc5b View commit details
    Browse the repository at this point in the history
  18. [lldb] Fixed the TestFdLeak test (llvm#92273)

    Use `os.devnull` instead of `/dev/null`.
    slydiman authored May 16, 2024
    Configuration menu
    Copy the full SHA
    ce961c5 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    b11a660 View commit details
    Browse the repository at this point in the history
  20. [flang] Add nsw flag to do-variable increment with a new option (llvm…

    …#91579)
    
    This patch adds nsw flag to the increment of do-variables when a new
    option is enabled.
    NOTE 11.10 in the Fortran 2018 standard says they never overflow.
    
    See also the discussion in llvm#74709 and the following discourse post.
    https://discourse.llvm.org/t/rfc-add-nsw-flags-to-arithmetic-integer-operations-using-the-option-fno-wrapv/77584/5
    yus3710-fj authored May 16, 2024
    Configuration menu
    Copy the full SHA
    526553b View commit details
    Browse the repository at this point in the history
  21. [MCAsmParser] Simplify expandMacro

    The error checking is only for .macro directives. Move it to the .macro
    parser to remove one parameter.
    MaskRay committed May 16, 2024
    Configuration menu
    Copy the full SHA
    3cc445a View commit details
    Browse the repository at this point in the history
  22. [flang] Add ETIME runtime and lowering intrinsics implementation (llv…

    …m#90578)
    
    This patch add support of intrinsics GNU extension ETIME
    llvm#84205. Some usage info and
    example has been added to `flang/docs/Intrinsics.md`. The patch contains
    both the lowering and the runtime code and works on both Windows and
    Linux.
    
    
    |   System  |   Implmentation  |
    |-----------|--------------------|
    | Windows| GetProcessTimes |
    | Linux      |times                     |
    JumpMasterJJ authored May 16, 2024
    Configuration menu
    Copy the full SHA
    245b7b6 View commit details
    Browse the repository at this point in the history
  23. [LegalizeVectorOps][X86] Add ISD::ABDS/ABSDU to the list of opcodes h…

    …andled by LegalizeVectorOps. (llvm#92332)
    
    The expand code is present, but we were missing the type query code
    so the nodes would be ignored until LegalizeDAG.
    topperc authored May 16, 2024
    Configuration menu
    Copy the full SHA
    f2d7400 View commit details
    Browse the repository at this point in the history
  24. [RISCV] Pass subvector type to isLegalInterleavedAccessType in getInt…

    …erleavedMemoryOpCost. (llvm#91825)
    
    isLegalInterleavedAccessType expects the subvector type, but
    getInterleavedMemoryOpCost is called with the full vector type. So we
    need to divide by Factor.
    topperc authored May 16, 2024
    Configuration menu
    Copy the full SHA
    487b43c View commit details
    Browse the repository at this point in the history
  25. [ORC] Support visionOS in LC_BUILD_VERSIONs for JITDylibs.

    rdar://127846581
    lhames committed May 16, 2024
    Configuration menu
    Copy the full SHA
    6bf1859 View commit details
    Browse the repository at this point in the history
  26. [RISCV] Defer creating RISCVInsertVSETVLI to avoid leak with -stop-af…

    …ter (llvm#92303)
    
    As noted in
    llvm#91440 (comment),
    if the pass pipeline stops early because of -stop-after any allocated
    passes added with insertPass will not be freed if they haven't already
    been added.
    
    This was showing up as a failure on the address sanitizer buildbots. We
    can fix it by instead passing the pass ID instead so that allocation is
    deferred.
    lukel97 authored May 16, 2024
    Configuration menu
    Copy the full SHA
    566fbb4 View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    70a926c View commit details
    Browse the repository at this point in the history
  28. [mlir] fix polynomial docs for MLIR website (llvm#92348)

    I built it and confirmed this fixes the issue locally.
    
    Co-authored-by: Jeremy Kun <j2kun@users.noreply.github.com>
    j2kun and j2kun authored May 16, 2024
    Configuration menu
    Copy the full SHA
    5bd8091 View commit details
    Browse the repository at this point in the history
  29. [mlir] fix IRDL dialect docs (llvm#92349)

    Currently the irdl dialect page has no content beyond the header.
    
    By referring to the Ops.td in the CMake config, it pulls in all the
    types, attributes, etc., so that the doc generation can include them all
    in the page.
    
    Rendered locally to confirm it fixes the issue
    
    
    ![image](https://github.com/llvm/llvm-project/assets/2467754/8758f324-6bc3-4f0e-8fa9-8962cdb0177f)
    
    Co-authored-by: Jeremy Kun <j2kun@users.noreply.github.com>
    j2kun and j2kun authored May 16, 2024
    Configuration menu
    Copy the full SHA
    afce597 View commit details
    Browse the repository at this point in the history
  30. Revert "[Serialization] Read the initializer for interesting static v…

    …ariables before consuming it (llvm#92218)"
    
    This reverts commit 3a4c1b9.
    
    This breaks a bot on clang-s390x-linux
    ChuanqiXu9 committed May 16, 2024
    Configuration menu
    Copy the full SHA
    3c2638d View commit details
    Browse the repository at this point in the history
  31. [MLIR][LLVM] add dwarfAddressSpace to DIDerivedType (llvm#92043)

    This field is present in LLVM, but was missing from the MLIR wrapper
    type. This addition allows MLIR languages to add proper DWARF info for
    GPU programs.
    willghatch authored May 16, 2024
    Configuration menu
    Copy the full SHA
    5c35b63 View commit details
    Browse the repository at this point in the history
  32. Revert "[flang] Add ETIME runtime and lowering intrinsics implementat…

    …ion" (llvm#92354)
    
    Reverts llvm#90578
    
    This broke the premerge linux buildbot.
    joker-eph authored May 16, 2024
    Configuration menu
    Copy the full SHA
    6706aeb View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    45cc6bd View commit details
    Browse the repository at this point in the history
  34. [github] Add keith back to bazel codeowners

    Wrongly removed in 45cc6bd.
    tbaederr committed May 16, 2024
    Configuration menu
    Copy the full SHA
    e27f9bb View commit details
    Browse the repository at this point in the history
  35. MCAsmParser: Support \+

    In .macro, \+ expands to the per-macro invocation count.
    https://sourceware.org/pipermail/binutils/2024-May/134009.html
    
    \+ counts from 0 for .irp/.irpc/.rept .
    
    Note: We currently prints \q for `.print "\q"` while gas doesn't. This
    patch does not change this behavior.
    MaskRay committed May 16, 2024
    Configuration menu
    Copy the full SHA
    7c95629 View commit details
    Browse the repository at this point in the history
  36. [Flang][OpenMP] Fix update operation not found issue (llvm#92165)

    If there is only one non-terminator operation in the update region then
    the update operation can be found and we can try to generate an
    atomicrmw instruction. Otherwise use the cmpxchg loop.
    
    Fixes llvm#91929
    kiranchandramohan authored May 16, 2024
    Configuration menu
    Copy the full SHA
    89ee3ae View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    ca1f0d4 View commit details
    Browse the repository at this point in the history
  38. InstCombine: Try to use exp10 intrinsic instead of libcall (llvm#92287)

    Addresses old TODO about the exp10 intrinsic not existing.
    arsenm authored May 16, 2024
    Configuration menu
    Copy the full SHA
    ce1ce5d View commit details
    Browse the repository at this point in the history
  39. [mlir][ArmSME] Verify ops on tile types post LLVM conversion (llvm#92076

    )
    
    Unsupported ops on tile types can become dead after
    `-convert-arm-sme-to-llvm` resulting in incorrect results. Verify such
    operations don't exist post-conversion and fail if they do.
    
    Based on discussion from
    https://discourse.llvm.org/t/on-improving-arm-sme-lowering-resilience-in-mlir/78543
    c-rhodes authored May 16, 2024
    Configuration menu
    Copy the full SHA
    b5107bd View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    8389177 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2024

  1. Configuration menu
    Copy the full SHA
    5f25d08 View commit details
    Browse the repository at this point in the history