Skip to content
  1. May 19, 2013
  2. May 18, 2013
    • Chandler Carruth's avatar
      Fix a logic bug in the handling of -fmath-errno in the driver. We would · 0d4b9e61
      Chandler Carruth authored
      imply -fno-math-errno if the user passed -fno-fast-math OR -ffast-math,
      regardless of in which order and regardless of the tool chain default.
      
      I've fixed this to follow the logic:
      
      1) If the last dominating flag is -fno-math-errno, -ffast-math, or
         -Ofast, then do not use math-errno.
      2) If the last dominating flag is an explicit -fmath-errno, do use
         math-errno.
      3) Otherwise, use the toolchain default.
      
      This, for example, allows the flag sequence
      '-ffast-math ... -fno-fast-math' with no mention of '-fmath-errno' or
      '-fno-math-errno' to preserve the toolchain default. Most notably, this
      should prevent users trying to disable fast-math optimizations on Darwin
      and BSD platforms from simultaneously enabling (pointless) -fmath-errno.
      
      I've enhanced the tests (after more reorganization) to cover this and
      other weird permutations of flags and targets.
      
      llvm-svn: 182203
      0d4b9e61
    • Chandler Carruth's avatar
      Slight reorganization of the fast-math tests which test for errno · 40746dfe
      Chandler Carruth authored
      setting. Consolidate the collection of tests that enable -fmath-errno
      and share a single CHECK line for simplicity.
      
      llvm-svn: 182202
      40746dfe
    • Renato Golin's avatar
      Unsupported remote JIT on ARM · d6841656
      Renato Golin authored
      llvm-svn: 182201
      d6841656
    • David Majnemer's avatar
      isKnownToBeAPowerOfTwo: (X & Y) + Y is a power of 2 or zero if y is also. · beab5678
      David Majnemer authored
      This is useful if something that looks like (x & (1 << y)) ? 64 : 32 is
      the divisor in a modulo operation.
      
      llvm-svn: 182200
      beab5678
    • Arnold Schwaighofer's avatar
      LoopVectorize: Handle single edge PHIs · 693a1ca6
      Arnold Schwaighofer authored
      We might encouter single edge PHIs - handle them with an identity select.
      
      Fixes PR15990.
      
      llvm-svn: 182199
      693a1ca6
    • Timur Iskhodzhanov's avatar
      836a4f36
    • Dmitri Gribenko's avatar
      docs/Passes: fix some typos · d95ddb74
      Dmitri Gribenko authored
      Patch by Yacine Belkadi.
      
      llvm-svn: 182197
      d95ddb74
    • Benjamin Kramer's avatar
      Add basic support for ELF32-ppc relocations to llvm-dwarfdump. · 48879809
      Benjamin Kramer authored
      Should help the ppc32 buildbot.
      
      llvm-svn: 182194
      48879809
    • Hal Finkel's avatar
      Check InlineAsm clobbers in PPCCTRLoops · 2f474f0e
      Hal Finkel authored
      We don't need to reject all inline asm as using the counter register (most does
      not). Only those that explicitly clobber the counter register need to prevent
      the transformation.
      
      llvm-svn: 182191
      2f474f0e
    • Tim Northover's avatar
      AArch64: add CMake dependency to fix very parallel builds · fd2639f7
      Tim Northover authored
      llvm-svn: 182190
      fd2639f7
    • Serge Pavlov's avatar
      Removed invalid character. · 11120067
      Serge Pavlov authored
      llvm-svn: 182189
      11120067
    • Jordan Rose's avatar
      [analyzer] New edges: include an edge to the end-of-path location. · 933e5ba7
      Jordan Rose authored
      llvm-svn: 182188
      933e5ba7
    • Jordan Rose's avatar
      [analyzer] "Fix" ParentMap to handle non-syntactic OpaqueValueExprs. · c3f1cb3b
      Jordan Rose authored
      Constructs like PseudoObjectExpr, where an expression can appear more than
      once in the AST, use OpaqueValueExprs to guard against inadvertent
      re-processing of the shared expression during AST traversal. The most
      common form of this is to share expressions between the syntactic
      "as-written" form of, say, an Objective-C property access 'obj.prop', and
      the underlying "semantic" form '[obj prop]'.
      
      However, some constructs can produce OpaqueValueExprs that don't appear in
      the syntactic form at all; in these cases the ParentMap wasn't ever traversing
      the children of these expressions. This patch fixes that by checking to see
      if an OpaqueValueExpr's child has ever been traversed before. There's also a
      bit of reset logic when visiting a PseudoObjectExpr to handle the case of
      updating the ParentMap, which some external clients depend on.
      
      This still isn't exactly the right fix because we probably want the parent
      of the OpaqueValueExpr itself to be its location in the syntactic form if
      it's syntactic and the PseudoObjectExpr or BinaryConditionalOperator itself
      if it's semantic. Whe I originally wrote the code to do this, I didn't realize
      that OpaqueValueExprs themselves are shared in the AST, not just their source
      expressions. This patch doesn't change the existing behavior so as not to
      break anything inadvertently relying on it; we'll come back to this later.
      
      llvm-svn: 182187
      c3f1cb3b
    • Jordan Rose's avatar
      [analyzer] Add a debug dump for PathPieces, a list of PathDiagnosticPieces. · 7c40d078
      Jordan Rose authored
      Originally implemented by Ted, extended by me.
      
      llvm-svn: 182186
      7c40d078
    • Jordan Rose's avatar
      Revert "[analyzer; alternate edges] improve support for edges with PseudoObjectExprs." · 433b0f54
      Jordan Rose authored
      Ted and I spent a long time discussing this today and found out that neither
      the existing code nor the new code was doing what either of us thought it
      was, which is never good. The good news is we found a much simpler way to
      fix the motivating test case (an ObjCSubscriptExpr).
      
      This reverts r182083, but pieces of it will come back in subsequent commits.
      
      llvm-svn: 182185
      433b0f54
    • David Majnemer's avatar
      X86: Bad peephole interaction between adc, MOV32r0 · 5ba473af
      David Majnemer authored
      The peephole tries to reorder MOV32r0 instructions such that they are
      before the instruction that modifies EFLAGS.
      
      The problem is that the peephole does not consider the case where the
      instruction that modifies EFLAGS also depends on the previous state of
      EFLAGS.
      
      Instead, walk backwards until we find an instruction that has a def for
      EFLAGS but does not have a use.
      If we find such an instruction, insert the MOV32r0 before it.
      If it cannot find such an instruction, skip the optimization.
      
      llvm-svn: 182184
      5ba473af
    • Sean Callanan's avatar
      Fixed a problem where the dynamic checkers (i.e., · e8cde68a
      Sean Callanan authored
      the Objective-C object checker and the pointer
      checker) were not always installed into expressions.
      
      <rdar://problem/13882566>
      
      llvm-svn: 182183
      e8cde68a
    • Rafael Espindola's avatar
      Handle local enum types too. · b6ed1531
      Rafael Espindola authored
      Thanks to John McCall for pointing this out.
      
      llvm-svn: 182182
      b6ed1531
    • Matt Arsenault's avatar
      Remove duplicated comment · e858e960
      Matt Arsenault authored
      The same comment is already made in the header
      
      llvm-svn: 182181
      e858e960
    • Matt Arsenault's avatar
      Add LLVMContext argument to getSetCCResultType · 75865923
      Matt Arsenault authored
      llvm-svn: 182180
      75865923
    • Greg Clayton's avatar
      <rdar://problem/11398407> · 6ecb232b
      Greg Clayton authored
      Name matching was working inconsistently across many places in LLDB. Anyone doing name lookups where you want to look for all types of names should used "eFunctionNameTypeAuto" as the sole name type mask. This will ensure that we get consistent "lookup function by name" results. We had many function calls using as mask like "eFunctionNameTypeBase | eFunctionNameTypeFull | eFunctionNameTypeMethod | eFunctionNameTypeSelector". This was due to the function lookup by name evolving over time, but as it stands today, use eFunctionNameTypeAuto when you want general name lookups. Either ModuleList::FindFunctions() or Module::FindFunctions() will figure out the right kinds of names to lookup and remove the "eFunctionNameTypeAuto" and replace it with the exact subset of what the name can be.
      
      This checkin also changes eFunctionNameTypeAny over to use eFunctionNameTypeAuto to reflect this.
      
      llvm-svn: 182179
      6ecb232b
    • Adrian Prantl's avatar
      Drop the const from the isa test. · b39fc142
      Adrian Prantl authored
      llvm-svn: 182178
      b39fc142
    • David Blaikie's avatar
      Fix the UBSan CMake build broken in r182118 · 97c3018a
      David Blaikie authored
      llvm-svn: 182177
      97c3018a
    • Adrian Prantl's avatar
      ObjC Debug Info: Emit the correct method names for accessors for · 6e785ec0
      Adrian Prantl authored
      properties declared in a protocol.
      
      rdar://problem/13798000
      
      llvm-svn: 182176
      6e785ec0
    • JF Bastien's avatar
      Support unaligned load/store on more ARM targets · 97b08c40
      JF Bastien authored
      This patch matches GCC behavior: the code used to only allow unaligned
      load/store on ARM for v6+ Darwin, it will now allow unaligned load/store
      for v6+ Darwin as well as for v7+ on Linux and NaCl.
      
      The distinction is made because v6 doesn't guarantee support (but LLVM
      assumes that Apple controls hardware+kernel and therefore have
      conformant v6 CPUs), whereas v7 does provide this guarantee (and
      Linux/NaCl behave sanely).
      
      The patch keeps the -arm-strict-align command line option, and adds
      -arm-no-strict-align. They behave similarly to GCC's -mstrict-align and
      -mnostrict-align.
      
      I originally encountered this discrepancy in FastIsel tests which expect
      unaligned load/store generation. Overall this should slightly improve
      performance in most cases because of reduced I$ pressure.
      
      llvm-svn: 182175
      97b08c40
    • Enrico Granata's avatar
      <rdar://problem/13928053> · 5a9c4fe2
      Enrico Granata authored
      Fix the fact that an empty NSString (e.g. one obtained from @"" would show no summary)
      
      llvm-svn: 182173
      5a9c4fe2
Loading