Skip to content
  1. Jul 18, 2014
    • Artyom Skrobov's avatar
      7a86a548
    • Artyom Skrobov's avatar
      78d5daf8
    • Alexey Bataev's avatar
      [OPENMP] Initial parsing and sema analysis for 'barrier' directive. · 4d1dfeab
      Alexey Bataev authored
      llvm-svn: 213360
      4d1dfeab
    • Oliver Stannard's avatar
      [ARM] Fix AAPCS regression caused by r211898 · e022851f
      Oliver Stannard authored
      r211898 introduced a regression where a large struct, which would
      normally be passed ByVal, was causing padding to be inserted to
      prevent the backend from using some GPRs, in order to follow the
      AAPCS. However, the type of the argument was not being set correctly,
      so the backend cannot align 8-byte aligned struct types on the stack.
      
      The fix is to not insert the padding arguments when the argument is
      being passed ByVal.
      
      llvm-svn: 213359
      e022851f
    • Tim Northover's avatar
      R600: rename misleading fp16 test. · 12817862
      Tim Northover authored
      This test is actually going in the opposite direction to what the
      filename and function name suggested.
      
      llvm-svn: 213358
      12817862
    • Tim Northover's avatar
      R600: support f16 -> f64 conversion intrinsic. · f861de3d
      Tim Northover authored
      Unfortunately, we don't seem to have a direct truncation, but the
      extension can be legally split into two operations so we should
      support that.
      
      llvm-svn: 213357
      f861de3d
    • Tim Northover's avatar
      NVPTX: support direct f16 <-> f64 conversions via intrinsics. · 5e54fe14
      Tim Northover authored
      Clang may well start emitting these soon, and while it may not be
      directly relevant for OpenCL or GLSL, the instructions were just
      sitting there waiting to be used.
      
      llvm-svn: 213356
      5e54fe14
    • Alexey Bataev's avatar
      [OPENMP] Initial parsing and sema analysis of 'taskyield' directive. · 68446b72
      Alexey Bataev authored
      llvm-svn: 213355
      68446b72
    • Zachary Turner's avatar
      Use the designated PYTHON_EXECUTABLE during build. · 05c30880
      Zachary Turner authored
      We were hardcoding "python" as the command to run the swig wrapper
      scripts.  We should be using PYTHON_EXECUTABLE instead.
      
      llvm-svn: 213354
      05c30880
    • Kevin Qin's avatar
      [AArch64] Implement Clang CLI interface proposal about "-march". · 110db6f2
      Kevin Qin authored
      1. Revert "Add default feature for CPUs on AArch64 target in Clang"
      at r210625. Then, all enabled feature will by passed explicitly by
      -target-feature in -cc1 option.
      
      2. Get "-mfpu" deprecated.
      
      3. Implement support of "-march". Usage is:
          -march=armv8-a+[no]feature
        For instance, "-march=armv8-a+neon+crc+nocrypto". Here "armv8-a" is
        necessary, and CPU names are not acceptable. Candidate features are
        fp, neon, crc and crypto. Where conflicting feature modifiers are
        specified, the right-most feature is used.
      
      4. Implement support of "-mtune". Usage is:
          -march=CPU_NAME
        For instance, "-march=cortex-a57". This option will ONLY get
        micro-architectural feature enabled specifying to target CPU,
        like "+zcm" and "+zcz" for cyclone. Any architectural features
        WON'T be modified.
      
      5. Change usage of "-mcpu" to "-mcpu=CPU_NAME+[no]feature", which is
        an alias to "-march={feature of CPU_NAME}+[no]feature" and
        "-mtune=CPU_NAME" together. Where this option is used in conjunction
        with -march or -mtune, those options take precedence over the
        appropriate part of this option.
      
      llvm-svn: 213353
      110db6f2
    • Hal Finkel's avatar
      Rename AlignAttribute to IntAttribute · e15442c8
      Hal Finkel authored
      Currently the only kind of integer IR attributes that we have are alignment
      attributes, and so the attribute kind that takes an integer parameter is called
      AlignAttr, but that will change (we'll soon be adding a dereferenceable
      attribute that also takes an integer value). Accordingly, rename AlignAttribute
      to IntAttribute (class names, enums, etc.).
      
      No functionality change intended.
      
      llvm-svn: 213352
      e15442c8
    • Matt Arsenault's avatar
      R600: Implement TTI:getPopcntSupport · 3dd43fc7
      Matt Arsenault authored
      The test is just copied from X86, and I don't know of a better
      way to test it.
      
      llvm-svn: 213351
      3dd43fc7
    • David Majnemer's avatar
      Parse: Diagnose malformed 'message' arguments for 'availability' attr · 2e49830b
      David Majnemer authored
      The parsing code for 'availability' wasn't prepared for string literals
      like "a" L"b" showing up.  Error if this occurs.
      
      llvm-svn: 213350
      2e49830b
    • Richard Smith's avatar
      Add dump() for MacroDirective and MacroInfo. · a5d2a49c
      Richard Smith authored
      llvm-svn: 213349
      a5d2a49c
    • Richard Smith's avatar
      [modules] Fix macro hiding bug exposed if: · 3965412f
      Richard Smith authored
       * A submodule of module A is imported into module B
       * Another submodule of module A that is not imported into B exports a macro
       * Some submodule of module B also exports a definition of the macro, and
         happens to be the first submodule of B that imports module A.
      
      In this case, we would incorrectly determine that A's macro redefines B's
      macro, and so we don't need to re-export B's macro at all.
      
      This happens with the 'assert' macro in an LLVM self-host. =(
      
      llvm-svn: 213348
      3965412f
    • Richard Smith's avatar
      Cleanup: remove essentially unused variable. · c4158e86
      Richard Smith authored
      llvm-svn: 213347
      c4158e86
    • Reid Kleckner's avatar
      Mark the vtable used when defining implicit copy and move ctors · 3be586fe
      Reid Kleckner authored
      I don't think other implicit members like copy assignment and move
      assignment require this treatment, because they should already be
      operating on a constructed object.
      
      Fixes PR20351.
      
      llvm-svn: 213346
      3be586fe
    • NAKAMURA Takumi's avatar
      SemaInit.cpp: Fix a warning with -Asserts. [-Wunused-variable] · c1551a10
      NAKAMURA Takumi authored
      llvm-svn: 213345
      c1551a10
    • Nick Kledzik's avatar
      [mach-o] Add support for x86 pointers which use scattered relocations · 7e246a47
      Nick Kledzik authored
      llvm-svn: 213344
      7e246a47
    • Zachary Turner's avatar
      Fixes a number of issue related to test portability on Windows. · 045fde58
      Zachary Turner authored
      99% of this CL is simply moving calls to "import pexpect" to a more
      narrow scope - i.e. the function that actually runs a particular
      test.  This way the test suite can run on Windows, which doesn't have
      pexpect, and the individual tests that use pexpect can be disabled on
      a platform-specific basis.
      
      Additionally, this CL fixes a few other cases of non-portability.
      Notably, using "ps" to get the command line, and os.uname() to
      determine the architecture don't work on Windows.  Finally, this
      also adds a stubbed out builder_win32 module.
      
      The full test suite runs correctly on Windows after this CL, although
      there is still some work remaining on the C++ side to fix one-shot
      script commands from LLDB (e.g. script print "foo"), which currently
      deadlock.
      
      Reviewed by: Todd Fiala
      
      Differential Revision: http://reviews.llvm.org/D4573
      
      llvm-svn: 213343
      045fde58
    • Jim Grosbach's avatar
      X86: Constant fold converting vector setcc results to float. · b6535c32
      Jim Grosbach authored
      Since the result of a SETCC for X86 is 0 or -1 in each lane, we can
      move unary operations, in this case [su]int_to_fp through the mask
      operation and constant fold the operation away. Generally speaking:
        UNARYOP(AND(VECTOR_CMP(x,y), constant))
            --> AND(VECTOR_CMP(x,y), constant2)
      where constant2 is UNARYOP(constant).
      
      This implements the transform where UNARYOP is [su]int_to_fp.
      
      For example, consider the simple function:
      define <4 x float> @foo(<4 x float> %val, <4 x float> %test) nounwind {
        %cmp = fcmp oeq <4 x float> %val, %test
        %ext = zext <4 x i1> %cmp to <4 x i32>
        %result = sitofp <4 x i32> %ext to <4 x float>
        ret <4 x float> %result
      }
      
      Before this change, the SSE code is generated as:
      LCPI0_0:
        .long 1                       ## 0x1
        .long 1                       ## 0x1
        .long 1                       ## 0x1
        .long 1                       ## 0x1
        .section  __TEXT,__text,regular,pure_instructions
        .globl  _foo
        .align  4, 0x90
      _foo:                                   ## @foo
        cmpeqps %xmm1, %xmm0
        andps LCPI0_0(%rip), %xmm0
        cvtdq2ps  %xmm0, %xmm0
        retq
      
      After, the code is improved to:
      LCPI0_0:
        .long 1065353216              ## float 1.000000e+00
        .long 1065353216              ## float 1.000000e+00
        .long 1065353216              ## float 1.000000e+00
        .long 1065353216              ## float 1.000000e+00
        .section  __TEXT,__text,regular,pure_instructions
        .globl  _foo
        .align  4, 0x90
      _foo:                                   ## @foo
        cmpeqps %xmm1, %xmm0
        andps LCPI0_0(%rip), %xmm0
        retq
      
      The cvtdq2ps has been constant folded away and the floating point 1.0f
      vector lanes are materialized directly via the ModRM operand of andps.
      
      llvm-svn: 213342
      b6535c32
    • Jim Grosbach's avatar
      AArch64: Constant fold converting vector setcc results to float. · f7502c48
      Jim Grosbach authored
      Since the result of a SETCC for AArch64 is 0 or -1 in each lane, we can
      move unary operations, in this case [su]int_to_fp through the mask
      operation and constant fold the operation away. Generally speaking:
        UNARYOP(AND(VECTOR_CMP(x,y), constant))
            --> AND(VECTOR_CMP(x,y), constant2)
      where constant2 is UNARYOP(constant).
      
      This implements the transform where UNARYOP is [su]int_to_fp.
      
      For example, consider the simple function:
      define <4 x float> @foo(<4 x float> %val, <4 x float> %test) nounwind {
        %cmp = fcmp oeq <4 x float> %val, %test
        %ext = zext <4 x i1> %cmp to <4 x i32>
        %result = sitofp <4 x i32> %ext to <4 x float>
        ret <4 x float> %result
      }
      
      Before this change, the code is generated as:
        fcmeq.4s  v0, v0, v1
        movi.4s v1, #0x1        // Integer splat value.
        and.16b v0, v0, v1      // Mask lanes based on the comparison.
        scvtf.4s  v0, v0        // Convert each lane to f32.
        ret
      
      After, the code is improved to:
        fcmeq.4s  v0, v0, v1
        fmov.4s v1, #1.00000000 // f32 splat value.
        and.16b v0, v0, v1      // Mask lanes based on the comparison.
        ret
      
      The svvtf.4s has been constant folded away and the floating point 1.0f
      vector lanes are materialized directly via fmov.4s.
      
      Rather than do the folding manually in the target code, teach getNode()
      in the generic SelectionDAG to handle folding constant operands of
      vector [su]int_to_fp nodes. It is reasonable (as noted in a FIXME) to do
      additional constant folding there as well, but I don't have test cases
      for those operations, so leaving them for another time when it becomes
      appropriate.
      
      rdar://17693791
      
      llvm-svn: 213341
      f7502c48
    • Nick Kledzik's avatar
      68a1abdf
    • Michael J. Spencer's avatar
      Revert "[x86] Fold extract_vector_elt of a load into the Load's address computation." · 1eb02301
      Michael J. Spencer authored
      There's a bug where this can create cycles in the DAG. It will take a bit
      to fix, so I'm backing it out for now.
      
      llvm-svn: 213339
      1eb02301
    • Reid Kleckner's avatar
      Fix parsing certain kinds of strings in the MS section pragmas · 722b1df8
      Reid Kleckner authored
      We were crashing on the relevant test case inputs.  Also, refactor this
      code a bit so we can report failure and slurp the pragma tokens without
      returning a diagnostic id.  This is more consistent with the rest of the
      parser and sema code.
      
      llvm-svn: 213337
      722b1df8
    • Eric Christopher's avatar
      Reset the Subtarget in the AsmPrinter for each machine function · 8ef7a6a1
      Eric Christopher authored
      and add explanatory comment about dual initialization. Fix
      use of the Subtarget to grab the information off of the target machine.
      
      llvm-svn: 213336
      8ef7a6a1
    • Eric Christopher's avatar
      Avoid resetting the UseSoftFloat and FloatABIType on the TargetMachine · 7394e234
      Eric Christopher authored
      Options struct and move the comment to inMips16HardFloat. Use the
      fact that we now know whether or not we cared about soft float to
      set the libcalls.
      Accordingly rename mipsSEUsesSoftFloat to abiUsesSoftFloat and
      propagate since it's no longer CPU specific.
      
      llvm-svn: 213335
      7394e234
    • Alexey Samsonov's avatar
      Check-labelize ubsan tests · c993933e
      Alexey Samsonov authored
      llvm-svn: 213334
      c993933e
    • Nick Kledzik's avatar
      [mach-o] implement more x86 and x86_64 relocation support · 2d432353
      Nick Kledzik authored
      Add support for adding section relocations in -r mode.  Enhance the test
      cases which validate the parsing of .o files to also round trip.  They now
      write out the .o file and then parse that, verifying all relocations survived
      the round trip.
      
      llvm-svn: 213333
      2d432353
    • Richard Smith's avatar
      PR20346: fix aggregate initialization / template instantiation bug: · 8aa561ba
      Richard Smith authored
      If, during the initial parse of a template, we perform aggregate initialization
      and form an implicit value initialization for an array type, then when we come
      to instantiate the template and redo the initialization step, we would try to
      match the implicit value initialization up against an array *element*, not to
      the complete array.
      
      Remarkably, we've had this bug since ~the dawn of time, but only noticed it
      recently.
      
      llvm-svn: 213332
      8aa561ba
    • Lang Hames's avatar
      [MCJIT] Fix the alignment requirements for ARM and AArch64 which were mistakenly · e5fc826f
      Lang Hames authored
      relaxed in the big RuntimeDyldMachO cleanup of r213293.
      
      No test case yet - this was found via inspection and there's no easy way to test
      GOT alignment in RuntimeDyldChecker at the moment. I'm working on adding support
      for this now, and hope to have a test case for this soon.
      
      llvm-svn: 213331
      e5fc826f
    • Kevin Enderby's avatar
      Tweak formating to match what clang-format would be for llvm-nm.cpp . · be84b295
      Kevin Enderby authored
      No functional change.
      
      llvm-svn: 213330
      be84b295
    • NAKAMURA Takumi's avatar
      clang/test/CodeGen/ms-inline-asm.c: Fix for -Asserts. · 0c5f4edb
      NAKAMURA Takumi authored
      llvm-svn: 213329
      0c5f4edb
    • Greg Clayton's avatar
      Fixed the objective C symbol parsing in ObjectFileMachO. · 26a15efa
      Greg Clayton authored
      This fixes all of the hidden ivar test cases and any case where we try to find the full definition of an objective C class.
      
      This also means hidden ivars show up again.
      
      <rdar://problem/15458957>
      llvm.org/pr20270
      llvm.org/pr20269
      llvm.org/pr20272
      
      llvm-svn: 213328
      26a15efa
    • Kevin Enderby's avatar
      Add printing of Mach-O stabs in llvm-nm. · 407cc21c
      Kevin Enderby authored
      llvm-svn: 213327
      407cc21c
    • Reid Kleckner's avatar
      Remove rules against std::function from the programmer's manual · 5c2245ba
      Reid Kleckner authored
      Clarify that llvm::function_ref is like StringRef for callables.
      
      llvm-svn: 213326
      5c2245ba
    • David Blaikie's avatar
      Revert "unique_ptr-ify ownership of ASTConsumers" · 62a56f39
      David Blaikie authored
      This reverts commit r213307.
      
      Reverting to have some on-list discussion/confirmation about the ongoing
      direction of smart pointer usage in the LLVM project.
      
      llvm-svn: 213325
      62a56f39
    • David Blaikie's avatar
      Revert "unique_ptr-ify ownership of ASTConsumers" · 5bae2c87
      David Blaikie authored
      This reverts commit r213308.
      
      Reverting to have some on-list discussion/confirmation about the ongoing
      direction of smart pointer usage in the LLVM project.
      
      llvm-svn: 213324
      5bae2c87
    • Joerg Sonnenberger's avatar
      References cannot be bound to null. · bbe75b99
      Joerg Sonnenberger authored
      llvm-svn: 213323
      bbe75b99
    • Rui Ueyama's avatar
      [PECOFF] Split ExportedSymbolRenameFile. · f2dcc913
      Rui Ueyama authored
      The code to manage resolvable symbols is now separated from
      ExportedSymbolRenameFile so that other class can reuse it.
      I'm planning to use it to find the entry function symbol
      based on resolvable symbols.
      
      llvm-svn: 213322
      f2dcc913
Loading