Skip to content
  1. May 14, 2013
    • Kai Nacke's avatar
      Add bitcast to store of personality function. · 9a224ced
      Kai Nacke authored
      The personality function is user defined and may have an arbitrary result type.
      The code assumes always i8*. This results in an assertion failure if a different
      type is used. A bitcast to i8* is added to prevent this failure.
      
      Reviewed by: Renato Golin, Bob Wilson
      
      llvm-svn: 181802
      9a224ced
    • Derek Schuff's avatar
      Fix ARM FastISel tests, as a first step to enabling ARM FastISel · bd7c6e50
      Derek Schuff authored
      ARM FastISel is currently only enabled for iOS non-Thumb1, and I'm working on
      enabling it for other targets. As a first step I've fixed some of the tests.
      Changes to ARM FastISel tests:
      - Different triples don't generate the same relocations (especially
        movw/movt versus constant pool loads). Use a regex to allow either.
      - Mangling is different. Use a regex to allow either.
      - The reserved registers are sometimes different, so registers get
        allocated in a different order. Capture the names only where this
        occurs.
      - Add -verify-machineinstrs to some tests where it works. It doesn't
        work everywhere it should yet.
      - Add -fast-isel-abort to many tests that didn't have it before.
      - Split out the VarArg test from fast-isel-call.ll into its own
        test. This simplifies test setup because of --check-prefix.
      
      Patch by JF Bastien
      
      llvm-svn: 181801
      bd7c6e50
    • Bill Schmidt's avatar
      PPC32: Fix stack collision between FP and CR save areas. · ef3d1a24
      Bill Schmidt authored
      The changes to CR spill handling missed a case for 32-bit PowerPC.
      The code in PPCFrameLowering::processFunctionBeforeFrameFinalized()
      checks whether CR spill has occurred using a flag in the function
      info.  This flag is only set by storeRegToStackSlot and
      loadRegFromStackSlot.  spillCalleeSavedRegisters does not call
      storeRegToStackSlot, but instead produces MI directly.  Thus we don't
      see the CR is spilled when assigning frame offsets, and the CR spill
      ends up colliding with some other location (generally the FP slot).
      
      This patch sets the flag in spillCalleeSavedRegisters for PPC32 so
      that the CR spill is properly detected and gets its own slot in the
      stack frame.
      
      llvm-svn: 181800
      ef3d1a24
    • Jyotsna Verma's avatar
      Hexagon: Test case to check if branch probabilities are properly reflected in · 7dcbb96e
      Jyotsna Verma authored
      the jump instructions in the form of taken/not-taken hint.
      
      llvm-svn: 181799
      7dcbb96e
    • Sergey Matveev's avatar
      Add LeakSanitizer.rst to docs. · f4633ac7
      Sergey Matveev authored
      llvm-svn: 181798
      f4633ac7
    • Jyotsna Verma's avatar
      c61e350a
    • Sergey Matveev's avatar
      [sanitizer] Fix Android build. · 23876877
      Sergey Matveev authored
      llvm-svn: 181796
      23876877
    • Daniel Malea's avatar
      Fix inline stepping test case on Linux because Thread::ThreadStoppedForAReason... · 246cb611
      Daniel Malea authored
      Fix inline stepping test case on Linux because Thread::ThreadStoppedForAReason ignored virtual steps.
      - add IsVirtualStep() virtual function to ThreadPlan, and implement it for
        ThreadPlanStepInRange
      - make GetPrivateStopReason query the current thread plan for a virtual stop to
        decide if the current stop reason needs to be preserved
      - remove extra check for an existing process in GetPrivateStopReason
      
      llvm-svn: 181795
      246cb611
    • Sergey Matveev's avatar
      [sanitizer] Fixed a bug in GetListOfModules. · 61101ba4
      Sergey Matveev authored
      llvm-svn: 181793
      61101ba4
    • Tom Stellard's avatar
      R600/SI: Add processor type for Hainan asic · 1e21b530
      Tom Stellard authored
      
      
      Patch by: Alex Deucher
      
      Reviewed-by: default avatarTom Stellard <thomas.stellard@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      
      NOTE: This is a candidate for the 3.3 branch.
      llvm-svn: 181792
      1e21b530
    • Sergey Matveev's avatar
      [sanitizer] Filtering in GetListOfModules. · 4b603e5c
      Sergey Matveev authored
      llvm-svn: 181791
      4b603e5c
    • Evgeniy Stepanov's avatar
      Add sanitizer syscall hooks to the tool's export lists. · f1efb256
      Evgeniy Stepanov authored
      llvm-svn: 181790
      f1efb256
    • Ashok Thirumurthi's avatar
    • Duncan Sands's avatar
      Get the unittests compiling when building with cmake and the setting · b33790d8
      Duncan Sands authored
      -DLLVM_ENABLE_THREADS=false.
      
      llvm-svn: 181788
      b33790d8
    • Sergey Matveev's avatar
      [sanitizer] LibraryNameIs in sanitizer_linux · af05543c
      Sergey Matveev authored
      llvm-svn: 181787
      af05543c
    • Sergey Matveev's avatar
      [sanitizer] Minor fixes in sanitizer_common tests. · 14b56186
      Sergey Matveev authored
      llvm-svn: 181786
      14b56186
    • Rafael Espindola's avatar
      Declare __clear_cache. · 17268dc1
      Rafael Espindola authored
      GCC declares __clear_cache in the gnu modes (-std=gnu++98,
      -std=gnu++11), but not in the strict modes (-std=c++98, -std=c++11). This patch
      declares it and therefore fixes the build when using one of the strict modes.
      
      llvm-svn: 181785
      17268dc1
    • Rafael Espindola's avatar
      Fix __clear_cache on ARM. · 2219fc58
      Rafael Espindola authored
      Current gcc's produce an error if __clear_cache is anything but
      
      __clear_cache(char *a, char *b);
      
      It looks like we had just implemented a gcc bug that is now fixed.
      
      llvm-svn: 181784
      2219fc58
    • Benjamin Kramer's avatar
    • Benjamin Kramer's avatar
      Revert accidental commit. · 4757d0aa
      Benjamin Kramer authored
      llvm-svn: 181782
      4757d0aa
    • Benjamin Kramer's avatar
      Take a stab at trying to unbreak the makefile build. · 324bf7a1
      Benjamin Kramer authored
      There is no clangRewrite.a.
      
      llvm-svn: 181781
      324bf7a1
    • Manuel Klimek's avatar
      Hopefully fix configure build. · cf0a2304
      Manuel Klimek authored
      llvm-svn: 181780
      cf0a2304
    • Daniel Jasper's avatar
      Fix uninitialized value bug found by valgrind. · 8187c76d
      Daniel Jasper authored
      llvm-svn: 181779
      8187c76d
    • Daniel Jasper's avatar
      Correctly determine ranges for clang-format. · cdd0662b
      Daniel Jasper authored
      We have been assuming that CharSourceRange::getTokenRange() by itself
      expands a range until the end of a token, but in fact it only sets
      IsTokenRange to true. Thus, we have so far only considered the first
      character of the last token to belong to an unwrapped line. This
      did not really manifest in symptoms as all edit integrations
      expand ranges to fully lines.
      
      llvm-svn: 181778
      cdd0662b
    • Richard Sandiford's avatar
      [SystemZ] Add disassembler support · eb9af294
      Richard Sandiford authored
      llvm-svn: 181777
      eb9af294
    • Michel Danzer's avatar
    • Richard Sandiford's avatar
      [SystemZ] Add extra testscases for r181773 · 18272f84
      Richard Sandiford authored
      Forgot to svn add these...
      
      llvm-svn: 181774
      18272f84
    • Richard Sandiford's avatar
      [SystemZ] Rework handling of constant PC-relative operands · 1fb5883d
      Richard Sandiford authored
      The GNU assembler treats things like:
      
              brasl   %r14, 100
      
      in the same way as:
      
              brasl   %r14, .+100
      
      rather than as a branch to absolute address 100.  We implemented this in
      LLVM by creating an immediate operand rather than the usual expr operand,
      and by handling immediate operands specially in the code emitter.
      This was undesirable for (at least) three reasons:
      
      - the specialness of immediate operands was exposed to the backend MC code,
        rather than being limited to the assembler parser.
      
      - in disassembly, an immediate operand really is an absolute address.
        (Note that this means reassembling printed disassembly can't recreate
        the original code.)
      
      - it would interfere with any assembly manipulation that we might
        try in future.  E.g. operations like branch shortening can change
        the relative position of instructions, but any code that updates
        sym+offset addresses wouldn't update an immediate "100" operand
        in the same way as an explicit ".+100" operand.
      
      This patch changes the implementation so that the assembler creates
      a "." label for immediate PC-relative operands, so that the operand
      to the MCInst is always the absolute address.  The patch also adds
      some error checking of the offset.
      
      llvm-svn: 181773
      1fb5883d
    • Richard Sandiford's avatar
      [SystemZ] Remove bogus isAsmParserOnly · 6a808f98
      Richard Sandiford authored
      Marking instructions as isAsmParserOnly stops them from being disassembled.
      However, in cases where separate asm and codegen versions exist, we actually
      want to disassemble to the asm ones.
      
      No functional change intended.
      
      llvm-svn: 181772
      6a808f98
    • Richard Sandiford's avatar
      [SystemZ] Match operands to fields by name rather than by order · 7d37cd26
      Richard Sandiford authored
      The SystemZ port currently relies on the order of the instruction operands
      matching the order of the instruction field lists.  This isn't desirable
      for disassembly, where the two are matched only by name.  E.g. the R1 and R2
      fields of an RR instruction should have corresponding R1 and R2 operands.
      
      The main complication is that addresses are compound operands,
      and as far as I know there is no mechanism to allow individual
      suboperands to be selected by name in "let Inst{...} = ..." assignments.
      Luckily it doesn't really matter though.  The SystemZ instruction
      encoding groups all address fields together in a predictable order,
      so it's just as valid to see the entire compound address operand as
      a single field.  That's the approach taken in this patch.
      
      Matching by name in turn means that the operands to COPY SIGN and
      CONVERT TO FIXED instructions can be given in natural order.
      (It was easier to do this at the same time as the rename,
      since otherwise the intermediate step was too confusing.)
      
      No functional change intended.
      
      llvm-svn: 181771
      7d37cd26
    • Daniel Jasper's avatar
      Fix clang-format bug in unwrapped-line merging. · 12f9d8ef
      Daniel Jasper authored
      Before (in styles that allow it), clang-format would not merge an
      if statement onto a single line, if only the second line was format
      (e.g. in an editor integration):
      
      if (a)
        return; // clang-format invoked on this line.
      
      With this patch, this gets properly merged to:
      
      if (a) return; // ...
      
      llvm-svn: 181770
      12f9d8ef
    • Richard Sandiford's avatar
      [SystemZ] Match operands to fields by name rather than by order · d454ec0c
      Richard Sandiford authored
      The SystemZ port currently relies on the order of the instruction operands
      matching the order of the instruction field lists.  This isn't desirable
      for disassembly, where the two are matched only by name.  E.g. the R1 and R2
      fields of an RR instruction should have corresponding R1 and R2 operands.
      
      The main complication is that addresses are compound operands,
      and as far as I know there is no mechanism to allow individual
      suboperands to be selected by name in "let Inst{...} = ..." assignments.
      Luckily it doesn't really matter though.  The SystemZ instruction
      encoding groups all address fields together in a predictable order,
      so it's just as valid to see the entire compound address operand as
      a single field.  That's the approach taken in this patch.
      
      Matching by name in turn means that the operands to COPY SIGN and
      CONVERT TO FIXED instructions can be given in natural order.
      (It was easier to do this at the same time as the rename,
      since otherwise the intermediate step was too confusing.)
      
      No functional change intended.
      
      llvm-svn: 181769
      d454ec0c
    • Manuel Klimek's avatar
      First revision of the dynamic ASTMatcher library. · 24db0f0a
      Manuel Klimek authored
      This library supports all the features of the compile-time based ASTMatcher
      library, but allows the user to specify and construct the matchers at runtime.
      It contains the following modules:
       - A variant type, to be used by the matcher factory.
       - A registry, where the matchers are indexed by name and have a factory method
         with a generic signature.
       - A simple matcher expression parser, that can be used to convert a matcher
         expression string into actual matchers that can be used with the AST at
         runtime.
      
      Many features where omitted from this first revision to simplify this code
      review. The main ideas are still represented in this change and it already has
      support working use cases.
      Things that are missing:
       - Support for polymorphic matchers. These requires supporting code in the
         registry, the marshallers and the variant type.
       - Support for numbers, char and bool arguments to the matchers. This requires
         supporting code in the parser and the variant type.
       - A command line program putting everything together and providing an already
         functional tool.
      
      Patch by Samuel Benzaquen.
      
      llvm-svn: 181768
      24db0f0a
    • Manuel Klimek's avatar
      Implement string literal breaking on unbreakable token sequences. · 5ecb5fd7
      Manuel Klimek authored
      This fixes indentation where there are for example multiple closing
      parentheses after a string literal, and where those parentheses
      run over the end of the line.
      
      During testing this revealed a bug in the implementation of
      breakProtrudingToken: we don't want to change the state if we didn't
      actually do anything.
      
      llvm-svn: 181767
      5ecb5fd7
    • Daniel Jasper's avatar
      Update clang-format emacs integration. · 6e3506f2
      Daniel Jasper authored
      - Remove free variables
      - Add function clang-format-buffer, e.g. for before-save-hooks
      - Wrap restoring windows in an unwind-protect
      
      Patch by Stephen Gildea!
      
      llvm-svn: 181766
      6e3506f2
    • Tim Northover's avatar
      AArch64: add test for updated __clear_cache definition · c28380a0
      Tim Northover authored
      llvm-svn: 181765
      c28380a0
    • Daniel Jasper's avatar
      Don't format sizeof/alignof as function types. · abc34214
      Daniel Jasper authored
      Before: A<sizeof (*x)> a;
      After:  A<sizeof(*x)> a;
      llvm-svn: 181764
      abc34214
    • Kostya Serebryany's avatar
      [tsan] fix gcc build with -Wall · 9d987e34
      Kostya Serebryany authored
      llvm-svn: 181763
      9d987e34
    • Tim Northover's avatar
      AArch64: correct definition of __clear_cache · 46ac5bfa
      Tim Northover authored
      According to libgcc document __clear_cache takes two char*
      pointers. I suspect GCC's actual behaviour is more subtle than that,
      but char* should clearly be preferred to void*.
      
      llvm-svn: 181762
      46ac5bfa
    • Patrik Hagglund's avatar
      Replace EXPECT_EQ with EXPECT_FALSE to avoid gcc warning · 76aca647
      Patrik Hagglund authored
      [-Wconversion-null], introduced in r181326.
      
      llvm-svn: 181761
      76aca647
Loading