Skip to content
  1. May 06, 2013
    • Eric Christopher's avatar
      Hoist boundary condition out of loop header. · 0cdce835
      Eric Christopher authored
      llvm-svn: 181248
      0cdce835
    • Eric Christopher's avatar
      Untabify. · 34ea3368
      Eric Christopher authored
      llvm-svn: 181247
      34ea3368
    • Reid Kleckner's avatar
      Move PragmaCommentHandler to lib/Parse in preparation for calling Sema · 002562a8
      Reid Kleckner authored
      Summary:
      No functionality change.  The existing tests for this pragma only verify
      that we can preprocess it.
      
      Reviewers: rsmith
      
      CC: cfe-commits
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D751
      
      llvm-svn: 181246
      002562a8
    • Bill Wendling's avatar
      Reduce attributes. · 66bdab13
      Bill Wendling authored
      llvm-svn: 181245
      66bdab13
    • Shankar Easwaran's avatar
      [lld]remove lld-core · c8858b34
      Shankar Easwaran authored
      llvm-svn: 181244
      c8858b34
    • Rafael Espindola's avatar
      Split Alignment out of the Section Characteristics. · fa4513a1
      Rafael Espindola authored
      The alignment is just a byte in the middle of Characteristics, not an
      independent flag. Making it an independent field in the yaml
      representation makes it more yamlio friendly.
      
      llvm-svn: 181243
      fa4513a1
    • Edwin Vane's avatar
      Stop LoopConvert removing DeclStmts from selection/iteration condition clauses · fa58b26a
      Edwin Vane authored
      If the LoopConvert Transform detects an alias for the loop variable, it
      attempts to use that name in the resulting range-based for loop while removing
      the original DeclStmt for the variable. That removal produced bad code when the
      declaration was in the condition of an if, switch, while, or for stmt. This
      revision fixes the problem by simply replacing the declaration with a use of
      the alias variable.
      
      llvm-svn: 181242
      fa58b26a
    • Daniel Malea's avatar
      Fix typo in C++11 flag for the GCC 4.6 code path: missing '-' · 0b7c611f
      Daniel Malea authored
      llvm-svn: 181239
      0b7c611f
    • Argyrios Kyrtzidis's avatar
      Modify ASTReaderListener to allow visiting the input files of an AST file. · c4cd2c4d
      Argyrios Kyrtzidis authored
      We can pass such an input-file-visiting ASTReaderListener to ASTReader::readASTFileControlBlock.
      
      llvm-svn: 181238
      c4cd2c4d
    • Argyrios Kyrtzidis's avatar
    • Enrico Granata's avatar
      <rdar://problem/11669154> · 14b74fd1
      Enrico Granata authored
      Make a summary format for libc++ STL containers that shows the number of items as before, but also shows the pointer value for pointer-to-container
      
      llvm-svn: 181236
      14b74fd1
    • Jyotsna Verma's avatar
      84c47102
    • Jean-Luc Duprat's avatar
      Test results verified using FileCheck rather than grep | count · 1610d571
      Jean-Luc Duprat authored
      llvm-svn: 181234
      1610d571
    • Krzysztof Parzyszek's avatar
      Make references to HexagonTargetMachine "const". · d5007471
      Krzysztof Parzyszek authored
      llvm-svn: 181233
      d5007471
    • Rafael Espindola's avatar
      Remove some redundant includes in llvm-mc.cpp. · 92fd9619
      Rafael Espindola authored
      Patch by Jun Koi!
      
      llvm-svn: 181231
      92fd9619
    • Andrew Trick's avatar
      Rotate multi-exit loops even if the latch was simplified. · 9c72b071
      Andrew Trick authored
      Test case by Michele Scandale!
      
      Fixes PR10293: Load not hoisted out of loop with multiple exits.
      
      There are few regressions with this patch, now tracked by
      rdar:13817079, and a roughly equal number of improvements. The
      regressions are almost certainly back luck because LoopRotate has very
      little idea of whether rotation is profitable. Doing better requires a
      more comprehensive solution.
      
      This checkin is a quick fix that lacks generality (PR10293 has
      a counter-example). But it trivially fixes the case in PR10293 without
      interfering with other cases, and it does satify the criteria that
      LoopRotate is a loop canonicalization pass that should avoid
      heuristics and special cases.
      
      I can think of two approaches that would probably be better in
      the long run. Ultimately they may both make sense.
      
      (1) LoopRotate should check that the current header would make a good
      loop guard, and that the loop does not already has a sufficient
      guard. The artifical SimplifiedLoopLatch check would be unnecessary,
      and the design would be more general and canonical. Two difficulties:
      
      - We need a strong guarantee that we won't endlessly rotate, so the
        analysis would need to be precise in order to avoid the
        SimplifiedLoopLatch precondition.
      
      - Analysis like this are usually based on SCEV, which we don't want to
        rely on.
      
      (2) Rotate on-demand in late loop passes. This could even be done by
      shoving the loop back on the queue after the optimization that needs
      it. This could work well when we find LICM opportunities in
      multi-branch loops. This requires some work, and it doesn't really
      solve the problem of SCEV wanting a loop guard before the analysis.
      
      llvm-svn: 181230
      9c72b071
    • Tom Stellard's avatar
      R600: Remove dead code from the CodeEmitter v2 · d93cede8
      Tom Stellard authored
      
      
      v2:
        - Replace switch statement with TSFlags query
      
      Reviewed-by: default avatarVincent Lejeune <vljn@ovi.com>
      Tested-By: default avatarAaron Watry <awatry@gmail.com>
      llvm-svn: 181229
      d93cede8
    • Tom Stellard's avatar
      R600: Emit config values in register / value pairs · 043de4c5
      Tom Stellard authored
      
      
      Reviewed-by: default avatarVincent Lejeune <vljn@ovi.com>
      Tested-By: default avatarAaron Watry <awatry@gmail.com>
      llvm-svn: 181228
      043de4c5
    • Eric Christopher's avatar
      6c6de847
    • Eric Christopher's avatar
      Grammar. · f0303324
      Eric Christopher authored
      llvm-svn: 181226
      f0303324
    • Tom Stellard's avatar
      cfe2ef8f
    • Eric Christopher's avatar
      Don't emit .dwo sections unless they exist. · 92f3c0b4
      Eric Christopher authored
      llvm-svn: 181224
      92f3c0b4
    • Tom Stellard's avatar
      R600: Emit ISA for CALL_FS_* instructions · dbbcaf31
      Tom Stellard authored
      
      
      Reviewed-by: default avatarVincent Lejeune <vljn@ovi.com>
      Tested-By: default avatarAaron Watry <awatry@gmail.com>
      llvm-svn: 181223
      dbbcaf31
    • Ulrich Weigand's avatar
      · e7c6dfeb
      Ulrich Weigand authored
      [SystemZ] Update non-pic DWARF encodings
      
      As pointed out by Rafael Espindola, we should match the DWARF encodings
      produced by GCC in both pic and non-pic modes.  This was not the case
      for the non-pic case.
      
      This patch changes all DWARF encodings to DW_EH_PE_absptr for the
      non-pic case, just like GCC does.  The test case is updated to check
      for both variants.
      
      llvm-svn: 181222
      e7c6dfeb
    • Edwin Vane's avatar
      Added comprehensive macro arg usage logic to Use-Nullptr Transform · 10414112
      Edwin Vane authored
      If a NullTo(Member)Pointer cast results from a macro arg expansion, all uses of
      the arg must result in such casts or else the macro arg cannot be replaced with
      'nullptr' safely. This revision adds logic and tests to ensure the safety of
      replacing macro args in the Use-Nullptr Transform.
      
      Fixes: PR15816
      llvm-svn: 181221
      10414112
    • Adhemerval Zanella's avatar
      PowerPC: Fix unimplemented relocation on ppc64 · e8bd03da
      Adhemerval Zanella authored
      This patch handles the R_PPC64_REL64 relocation type for powerpc64
      for mcjit.
      
      llvm-svn: 181220
      e8bd03da
    • Jean-Luc Duprat's avatar
      Fix add4.ll test cmdline so that it passes · 4189ef45
      Jean-Luc Duprat authored
      llvm-svn: 181219
      4189ef45
    • Enrico Granata's avatar
    • Howard Hinnant's avatar
      Expose accidentally removed __compressed_pair constructor taking... · eedfabd9
      Howard Hinnant authored
      Expose accidentally removed __compressed_pair constructor taking piecewise_construct_t.  This fixes http://llvm.org/bugs/show_bug.cgi?id=15918 .
      
      llvm-svn: 181217
      eedfabd9
    • Jean-Luc Duprat's avatar
      Provide InstCombines for the following 3 cases: · 3e4fc3ef
      Jean-Luc Duprat authored
      A * (1 - (uitofp i1 C)) -> select C, 0, A
      B * (uitofp i1 C) -> select C, B, 0
      select C, 0, A + select C, B, 0 -> select C, B, A
      
      These come up in code that has been hand-optimized from a select to a linear blend, 
      on platforms where that may have mattered. We want to undo such changes 
      with the following transform:
      A*(1 - uitofp i1 C) + B*(uitofp i1 C) -> select C, A, B
      
      llvm-svn: 181216
      3e4fc3ef
    • Tim Northover's avatar
      AArch64: use MCJIT by default and enable related tests. · 7dbbc28f
      Tim Northover authored
      This just enables some testing I'd missed after implementing MCJIT
      support.
      
      llvm-svn: 181215
      7dbbc28f
    • Jordan Rose's avatar
      [analyzer] Remove now-unused bindCompoundLiteral helper function. · 50e5db8a
      Jordan Rose authored
      The one user has been changed to use getLValue on the compound literal
      expression and then use the normal bindLoc to assign a value. No need
      to special case this in the StoreManager.
      
      llvm-svn: 181214
      50e5db8a
    • Jordan Rose's avatar
      [analyzer] Handle CXXTemporaryObjectExprs in compound literals. · 5d2abefb
      Jordan Rose authored
      This occurs because in C++11 the compound literal syntax can trigger a
      constructor call via list-initialization. That is, "Point{x, y}" and
      "(Point){x, y}" end up being equivalent. If this occurs, the inner
      CXXConstructExpr will have already handled the object construction; the
      CompoundLiteralExpr just needs to propagate that value forwards.
      
      <rdar://problem/13804098>
      
      llvm-svn: 181213
      5d2abefb
    • Jordan Rose's avatar
      Fix representation of compound literals for C++ objects with destructors. · 6c0505e4
      Jordan Rose authored
      Previously, this compound literal expression (a GNU extension in C++):
      
        (AggregateWithDtor){1, 2}
      
      resulted in this AST:
      
       `-CXXBindTemporaryExpr [...] 'struct Point' (CXXTemporary [...])
         `-CompoundLiteralExpr [...] 'struct AggregateWithDtor'
           `-CXXBindTemporaryExpr [...] 'struct AggregateWithDtor' (CXXTemporary [...])
             `-InitListExpr [...] 'struct AggregateWithDtor'
               |-IntegerLiteral [...] 'int' 1
               `-IntegerLiteral [...] 'int' 2
      
      Note the two CXXBindTemporaryExprs. The InitListExpr is really part of the
      CompoundLiteralExpr, not an object in its own right. By introducing a new
      entity initialization kind in Sema specifically for compound literals, we
      avoid the treatment of the inner InitListExpr as a temporary.
      
       `-CXXBindTemporaryExpr [...] 'struct Point' (CXXTemporary [...])
         `-CompoundLiteralExpr [...] 'struct AggregateWithDtor'
           `-InitListExpr [...] 'struct AggregateWithDtor'
             |-IntegerLiteral [...] 'int' 1
             `-IntegerLiteral [...] 'int' 2
      
      llvm-svn: 181212
      6c0505e4
    • Ulrich Weigand's avatar
      · 47445073
      Ulrich Weigand authored
      Add SystemZ support
      
      This patch then adds all the usual platform-specific pieces for SystemZ:
      driver support, basic target info, register names and constraints,
      ABI info and vararg support.  It also adds new tests to verify pre-defined
      macros and inline asm, and updates a test for the minimum alignment change.
      
      This version of the patch incorporates feedback from reviews by
      Eric Christopher and John McCall.  Thanks to all reviewers!
      
      Patch by Richard Sandiford.
      
      llvm-svn: 181211
      47445073
    • Ulrich Weigand's avatar
      · fa806422
      Ulrich Weigand authored
      Allow targets to define minimum alignment for global variables
      
      This patch adds a new common code feature that allows platform code to
      request minimum alignment of global symbols.  The background for this is
      that on SystemZ, the most efficient way to load addresses of global symbol
      is the LOAD ADDRESS RELATIVE LONG (LARL) instruction.  This instruction
      provides PC-relative addressing, but only to *even* addresses.  For this
      reason, existing compilers will guarantee that global symbols are always
      aligned to at least 2.  [ Since symbols would otherwise already use a
      default alignment based on their type, this will usually only affect global
      objects of character type or character arrays. ]  GCC also allows creating
      symbols without that extra alignment by using explicit "aligned" attributes
      (which then need to be used on both definition and each use of the symbol).
      
      To enable support for this with Clang, this patch adds a
      TargetInfo::MinGlobalAlign variable that provides a global minimum for the
      alignment of every global object (unless overridden via explicit alignment
      attribute), and adds code to respect this setting.  Within this patch, no
      platform actually sets the value to anything but the default 1, resulting
      in no change in behaviour on any existing target.
      
      This version of the patch incorporates feedback from reviews by
      Eric Christopher and John McCall.  Thanks to all reviewers!
      
      Patch by Richard Sandiford.
      
      llvm-svn: 181210
      fa806422
    • Ulrich Weigand's avatar
      · 92b2085c
      Ulrich Weigand authored
      [SystemZ] Add to --enable-targets=all
      
      This patch finally enables the SystemZ target in the default build
      (with --enable-targets=all).
      
      Patch by Richard Sandiford.
      
      llvm-svn: 181209
      92b2085c
    • Ulrich Weigand's avatar
      · 1ceebf6e
      Ulrich Weigand authored
      [SystemZ] Add configure bits
      
      This patch wires up the SystemZ target in configure, so that it can now be
      built using --enable-targets=systemz.   It is not yet included in the default
      build (--enable-targets=all); this will be done by a follow-up patch.
      
      Patch by Richard Sandiford.
      
      llvm-svn: 181208
      1ceebf6e
    • Ulrich Weigand's avatar
      · 80435baa
      Ulrich Weigand authored
      [SystemZ] Set up JIT/MCJIT test cases
      
      This patch adds the necessary configuration bits and #ifdef's to set up
      the JIT/MCJIT test cases for SystemZ.  Like other recent targets, we do
      fully support MCJIT, but do not support the old JIT at all.  Set up the
      lit config files accordingly, and disable old-JIT unit tests.
      
      Patch by Richard Sandiford.
      
      llvm-svn: 181207
      80435baa
    • Ulrich Weigand's avatar
      · 982a2151
      Ulrich Weigand authored
      [SystemZ] Add MC test cases
      
      This adds all MC tests for the SystemZ target.
      
      Patch by Richard Sandiford.
      
      llvm-svn: 181206
      982a2151
Loading