Skip to content
  1. Nov 13, 2020
    • Akira Hatanaka's avatar
      [ObjC][ARC] Clear the lists of basic blocks and instructions before · 09266e4a
      Akira Hatanaka authored
      continuing the loop
      
      This fixes a bug introduced in c6f1713c.
      09266e4a
    • Lang Hames's avatar
      [ORC] Remove designated initializer. · bdf26d8d
      Lang Hames authored
      bdf26d8d
    • Lang Hames's avatar
      [ORC] Break up OrcJIT library, add Orc-RPC based remote TargetProcessControl · 1d0676b5
      Lang Hames authored
      implementation.
      
      This patch aims to improve support for out-of-process JITing using OrcV2. It
      introduces two new class templates, OrcRPCTargetProcessControlBase and
      OrcRPCTPCServer, which together implement the TargetProcessControl API by
      forwarding operations to an execution process via an Orc-RPC Endpoint. These
      utilities are used to implement out-of-process JITing from llvm-jitlink to
      a new llvm-jitlink-executor tool.
      
      This patch also breaks the OrcJIT library into three parts:
        -- OrcTargetProcess: Contains code needed by the JIT execution process.
        -- OrcShared: Contains code needed by the JIT execution and compiler
           processes
        -- OrcJIT: Everything else.
      
      This break-up allows JIT executor processes to link against OrcTargetProcess
      and OrcShared only, without having to link in all of OrcJIT. Clients executing
      JIT'd code in-process should start linking against OrcTargetProcess as well as
      OrcJIT.
      
      In the near future these changes will enable:
        -- Removal of the OrcRemoteTargetClient/OrcRemoteTargetServer class templates
           which provided similar functionality in OrcV1.
        -- Restoration of Chapter 5 of the Building-A-JIT tutorial series, which will
           serve as a simple usage example for these APIs.
        -- Implementation of lazy, cross-target compilation in lli's -jit-kind=orc-lazy
           mode.
      1d0676b5
    • Jameson Nash's avatar
      [AsmPrinter] fix -disable-debug-info option · 9606ef03
      Jameson Nash authored
      This option was in a rather convoluted place, causing global parameters
      to be set in awkward and undesirable ways to try to account for it
      indirectly. Add tests for the -disable-debug-info option and ensure we
      don't print unintended markers from unintended places.
      
      Reviewed By: dstenb
      
      Differential Revision: https://reviews.llvm.org/D91083
      9606ef03
    • Craig Topper's avatar
      [X86] Use EVT::getIntegerVT instead of MVT::getIntegerVT where the type can be i2 or i4. · 114f0446
      Craig Topper authored
      This was a mistake introduced in D91294. I'm not sure how to
      exercise this with the existing code, but I hit it while trying
      some follow up experiments.
      114f0446
    • Craig Topper's avatar
      [X86] When storing v1i1/v2i1/v4i1 to memory, make sure we store zeros in the rest of the byte · a4124e45
      Craig Topper authored
      We can't store garbage in the unused bits. It possible that something like zextload from i1/i2/i4 is created to read the memory. Those zextloads would be legalized assuming the extra bits are 0.
      
      I'm not sure that the code in lowerStore is executed for the v1i1/v2i1/v4i1 case. It looks like the DAG combine in combineStore may have converted them to v8i1 first. And I think we're missing some cases to avoid going to the stack in the first place. But I don't have time to investigate those things at the moment so I wanted to focus on the correctness issue.
      
      Should fix PR48147.
      
      Reviewed By: RKSimon
      
      Differential Revision: https://reviews.llvm.org/D91294
      a4124e45
    • Max Kazantsev's avatar
      [IndVars] Replace checks with invariants if we cannot remove them · 77efb73c
      Max Kazantsev authored
      If we cannot prove that the check is trivially true, but can prove that it either
      fails on the 1st iteration or never fails, we can replace it with first iteration check.
      
      Differential Revision: https://reviews.llvm.org/D88527
      Reviewed By: skatkov
      77efb73c
    • Sanjay Patel's avatar
      [InstCombine] fold sub of low-bit masked value from offset of same value · 0abde4bc
      Sanjay Patel authored
      There might be some demanded/known bits way to generalize this,
      but I'm not seeing it right now.
      
      This came up as a regression when I was looking at a different
      demanded bits improvement.
      
      https://rise4fun.com/Alive/5fl
      
        Name: general
        Pre: ((-1 << countTrailingZeros(C1)) & C2) == 0
        %a1 = add i8 %x, C1
        %a2 = and i8 %x, C2
        %r = sub i8 %a1, %a2
        =>
        %r = and i8 %a1, ~C2
      
        Name: test 1
        %a1 = add i8 %x, 192
        %a2 = and i8 %x, 10
        %r = sub i8 %a1, %a2
        =>
        %r = and i8 %a1, -11
      
        Name: test 2
        %a1 = add i8 %x, -108
        %a2 = and i8 %x, 3
        %r = sub i8 %a1, %a2
        =>
        %r = and i8 %a1, -4
      0abde4bc
    • Stanislav Mekhanoshin's avatar
      5ab17021
  2. Nov 12, 2020
Loading