Skip to content
  1. Nov 17, 2017
    • Zachary Turner's avatar
      Re-revert "Refactor debuginfo-tests" · b5c237ec
      Zachary Turner authored
      This is still broken because it causes certain tests to be
      run twice with slightly different configurations, which is
      wrong in some cases.
      
      You can observe this by running:
      
        ninja -nv check-all | grep debuginfo-tests
      
      And seeing that it passes clang/test and clang/test/debuginfo-tests
      to lit, which causes it to run debuginfo-tests twice.  The fix is
      going to involve either:
      
        a) figuring out that we're running in this "deprecated" configuration,
           and then deleting the clang/test/debuginfo-tests path, which should
           cause it to behave identically to before, or:
        b) make lit smart enough that it doesn't descend into a sub-suite if
           that sub-suite already has a lit.cfg file.
      
      llvm-svn: 318486
      b5c237ec
    • Dmitry Mikulin's avatar
      Current implementation of Value::replaceUsesExceptBlockAddr() uses UseList · 2f2ace98
      Dmitry Mikulin authored
      iterator to walk the list which keeps changing inside the loop. When the
      UseList contains several uses with the same user, we end processing the same
      user more than once, which leads to an assert.
      
      With this fix, unique users are saved and processed later to avoid
      processing duplicates.
      
      Differential Revision: https://reviews.llvm.org/D39864
      
      llvm-svn: 318477
      2f2ace98
    • Yi Kong's avatar
      [ARM] 't' asm constraint should accept i32 · 39bcd4ed
      Yi Kong authored
      't' constraint normally only accepts f32 operands, but for VCVT the
      operands can be i32. LLVM is overly restrictive and rejects asm like:
      
        float foo() {
          float result;
          __asm__ __volatile__(
            "vcvt.f32.s32 %[result], %[arg1]\n"
            : [result]"=t"(result)
            : [arg1]"t"(0x01020304) );
          return result;
        }
      
      Relax the value type for 't' constraint to either f32 or i32.
      
      Differential Revision: https://reviews.llvm.org/D40137
      
      llvm-svn: 318472
      39bcd4ed
    • Craig Topper's avatar
      [X86] Add DAG combine to remove sext i32->i64 from gather/scatter instructions. · 08908237
      Craig Topper authored
      Only do this pre-legalize in case we're using the sign extend to legalize for KNL.
      
      This recovers all of the tests that changed when I stopped SelectionDAGBuilder from deleting sign extends.
      
      There's more work that could be done here particularly to fix the i8->i64 test case that experienced split.
      
      llvm-svn: 318468
      08908237
    • Craig Topper's avatar
      [X86] Add gather test with index sign extended from i8 type. · 1120bb9f
      Craig Topper authored
      Previously SelectionDAGBuilder would remove this sign extend leading to a failure during isel.
      
      The codegen here isn't very nice as we ended up triggering a split.
      
      llvm-svn: 318467
      1120bb9f
    • Craig Topper's avatar
      [X86] Don't remove sign extend of gather/scatter indices during SelectionDAGBuilder. · 242374e2
      Craig Topper authored
      The sign extend might be from an i16 or i8 type and was inserted by InstCombine to match the pointer width. X86 gather legalization isn't currently detecting this to reinsert a sign extend to make things legal.
      
      It's a bit weird for the SelectionDAGBuilder to do this kind of optimization in the first place. With this removed we can at least lean on InstCombine somewhat to ensure the index is i32 or i64.
      
      I'll work on trying to recover some of the test cases by removing sign extends in the backend when its safe to do so with an understanding of the current legalizer capabilities.
      
      This should fix PR30690.
      
      llvm-svn: 318466
      242374e2
    • Lang Hames's avatar
      [Support] Support NetBSD PaX MPROTECT in sys::Memory. · afcb70d0
      Lang Hames authored
      Removes AllocateRWX, setWritable and setExecutable from sys::Memory and
      standardizes on allocateMappedMemory / protectMappedMemory. The
      allocateMappedMemory method is updated to request full permissions for memory
      blocks so that they can be marked executable later.
      
      llvm-svn: 318464
      afcb70d0
  2. Nov 16, 2017
Loading