Skip to content
  1. Jan 14, 2014
    • Zoran Jovanovic's avatar
      Test case micromips-load-effective-address.s renamed to... · 9d176af7
      Zoran Jovanovic authored
      Test case micromips-load-effective-address.s renamed to micromips-load-effective-address.ll and moved to test/CodeGen/Mips.
      
      llvm-svn: 199221
      9d176af7
    • Nico Rieck's avatar
      Update CodeGen to use DLL storage class for dllimport/dllexport · bb0554f9
      Nico Rieck authored
      With the old linkage types removed, set the linkage to external for both
      dllimport and dllexport to reflect what's currently supported.
      
      llvm-svn: 199220
      bb0554f9
    • Nico Rieck's avatar
      Handle dllexport for global aliases · c60647f0
      Nico Rieck authored
      llvm-svn: 199219
      c60647f0
    • Nico Rieck's avatar
      Decouple dllexport/dllimport from linkage · 7157bb76
      Nico Rieck authored
      Representing dllexport/dllimport as distinct linkage types prevents using
      these attributes on templates and inline functions.
      
      Instead of introducing further mixed linkage types to include linkonce and
      weak ODR, the old import/export linkage types are replaced with a new
      separate visibility-like specifier:
      
        define available_externally dllimport void @f() {}
        @Var = dllexport global i32 1, align 4
      
      Linkage for dllexported globals and functions is now equal to their linkage
      without dllexport. Imported globals and functions must be either
      declarations with external linkage, or definitions with
      AvailableExternallyLinkage.
      
      llvm-svn: 199218
      7157bb76
    • Elena Demikhovsky's avatar
      AVX-512: optimized scalar compare patterns · 767fc967
      Elena Demikhovsky authored
      removed AVX512SI format, since it is similar to AVX512BI.
      
      llvm-svn: 199217
      767fc967
    • Kostya Serebryany's avatar
      6e53cfc1
    • Eli Bendersky's avatar
      Clarify the LibTooling.rst a bit · aa2e61f3
      Eli Bendersky authored
      The ClangCheck tool has changed and no longer is exactly equivalent to the
      code pasted in the doc.
      
      llvm-svn: 199215
      aa2e61f3
    • Patrik Hagglund's avatar
      Fix valgrind warning for gcc builds. · 682a10d4
      Patrik Hagglund authored
      Sorry, I don't understand why the warning is generated (a gcc
      bug?). Anyhow, the change should improve readablity. No functionality
      change intended.
      
      llvm-svn: 199214
      682a10d4
    • Andrea Di Biagio's avatar
      [X86] Fix assertion failure caused by a wrong folding of vector shifts by immediate count. · 5448a3c7
      Andrea Di Biagio authored
      This fixes a regression intruced by r198113.
      
      Revision r198113 introduced an algorithm that tries to fold a vector shift
      by immediate count into a build_vector if the input vector is a known vector
      of constants.
      
      However the algorithm only worked under the assumption that the input vector
      type and the shift type are exactly the same.
      
      This patch disables the folding of vector shift by immediate count if the
      input vector type and the shift value type are not the same.
      
      llvm-svn: 199213
      5448a3c7
    • Tim Northover's avatar
      ARM: add constraint that RdLo != Rn != RdHi for v5 MLA insts. · 56cc5c92
      Tim Northover authored
      llvm-svn: 199212
      56cc5c92
    • Tim Northover's avatar
      ARM: remove unused UMAALv5 node · c4c34b4f
      Tim Northover authored
      It was incorrect anyway, since it didn't have accumulator inputs and wasn't
      even supported on v5.
      
      llvm-svn: 199211
      c4c34b4f
    • Alp Toker's avatar
      Switch around the order of MSVCCompat and MicrosoftExt · fd8c079d
      Alp Toker authored
      Full language modes usually get listed before minor language extensions in
      LangOpts, so that subsequent sub-modes can predicate on the major modes.
      
      This also lends to a cleanup in CompilerInvocation to better indicate to the
      reader that MSVCCompat is a superset of MicrosoftExt.
      
      Cleanup only.
      
      llvm-svn: 199210
      fd8c079d
    • Alp Toker's avatar
      Rename language option MicrosoftMode to MSVCCompat · bfa3934f
      Alp Toker authored
      There's been long-standing confusion over the role of these two options. This
      commit makes the necessary changes to differentiate them clearly, following up
      from r198936.
      
      MicrosoftExt (aka. fms-extensions):
       Enable largely unobjectionable Microsoft language extensions to ease
       portability. This mode, also supported by gcc, is used for building software
       like FreeBSD and Linux kernel extensions that share code with Windows drivers.
      
      MSVCCompat (aka. -fms-compatibility, formerly MicrosoftMode):
       Turn on a special mode supporting 'heinous' extensions for drop-in
       compatibility with the Microsoft Visual C++ product. Standards-compilant C and
       C++ code isn't guaranteed to work in this mode. Implies MicrosoftExt.
      
      Note that full -fms-compatibility mode is currently enabled by default on the
      Windows target, which may need tuning to serve as a reasonable default.
      
      See cfe-commits for the full discourse, thread 'r198497 - Move MS predefined
      type_info out of InitializePredefinedMacros'
      
      No change in behaviour.
      
      llvm-svn: 199209
      bfa3934f
    • Joey Gouly's avatar
      [OpenCL] Disallow casts between address spaces. · 8fc32f01
      Joey Gouly authored
      llvm-svn: 199208
      8fc32f01
    • Nico Rieck's avatar
      Revert "Decouple dllexport/dllimport from linkage" · 9d2e0df0
      Nico Rieck authored
      Revert this for now until I fix an issue in Clang with it.
      
      This reverts commit r199204.
      
      llvm-svn: 199207
      9d2e0df0
    • Nico Rieck's avatar
      Revert "Handle dllexport for global aliases" · 1794b62f
      Nico Rieck authored
      This reverts commit r199205.
      
      llvm-svn: 199206
      1794b62f
    • Nico Rieck's avatar
      Handle dllexport for global aliases · 4192acdb
      Nico Rieck authored
      llvm-svn: 199205
      4192acdb
    • Nico Rieck's avatar
      Decouple dllexport/dllimport from linkage · e43aaf79
      Nico Rieck authored
      Representing dllexport/dllimport as distinct linkage types prevents using
      these attributes on templates and inline functions.
      
      Instead of introducing further mixed linkage types to include linkonce and
      weak ODR, the old import/export linkage types are replaced with a new
      separate visibility-like specifier:
      
        define available_externally dllimport void @f() {}
        @Var = dllexport global i32 1, align 4
      
      Linkage for dllexported globals and functions is now equal to their linkage
      without dllexport. Imported globals and functions must be either
      declarations with external linkage, or definitions with
      AvailableExternallyLinkage.
      
      llvm-svn: 199204
      e43aaf79
    • Nico Rieck's avatar
      Fix fastcall mangling of dllimported symbols · da881a27
      Nico Rieck authored
      fastcall requires @ as global prefix instead of _ but getNameWithPrefix
      wrongly assumes the OutName buffer is empty and replaces at index 0.
      For imported functions this buffer is pre-filled with "__imp_" resulting
      in broken "@_imp_foo@0" mangling.
      
      Instead replace at the proper index. We also never have to prepend the
      @-prefix because this fastcall mangling is only used on 32-bit Windows
      targets which have _ has global prefix.
      
      llvm-svn: 199203
      da881a27
    • Deepak Panickal's avatar
      Fix return type for Windows · 263fde06
      Deepak Panickal authored
      llvm-svn: 199202
      263fde06
    • NAKAMURA Takumi's avatar
    • Kostya Serebryany's avatar
      19e6e4a4
    • Sylvestre Ledru's avatar
      Remove trailing spaces · 096d6e44
      Sylvestre Ledru authored
      llvm-svn: 199199
      096d6e44
    • Daniel Jasper's avatar
      clang-format: Fix bug introduced in r198871. · d07c2ee9
      Daniel Jasper authored
      We cannot simply change the start column to accomodate for the @ in an
      ObjC string literal as that will make clang-format happily violate the
      column limit.
      
      Use a different workaround instead. However, a better long-term
      solution might be to join the @ and the rest of the literal into a
      single token.
      
      llvm-svn: 199198
      d07c2ee9
    • NAKAMURA Takumi's avatar
      Revert r199191, "LTO: add API to set strategy for -internalize" · 23c0ab53
      NAKAMURA Takumi authored
      Please update also Other/link-opts.ll, in next time.
      
      llvm-svn: 199197
      23c0ab53
    • David Majnemer's avatar
      Disable this test for windows builders · a5b0999e
      David Majnemer authored
      This test provides definitions of size_t which are at odds with
      -fms-compatibility.  Disable this test on those builders (for now).
      
      llvm-svn: 199196
      a5b0999e
    • David Majnemer's avatar
      Switch to ssize_t from size_t to unbreak windows builders. · d4328ded
      David Majnemer authored
      Builders that have -fms-compatibility on by default define size_t implicitly.
      Tests that provide conflicting definitions would cause unintended failures.
      
      llvm-svn: 199195
      d4328ded
    • Craig Topper's avatar
      Remove stray comma in enum to satisfy -Wpedantic. · ad60708a
      Craig Topper authored
      llvm-svn: 199194
      ad60708a
    • Craig Topper's avatar
      Separate the concept of 16-bit/32-bit operand size controlled by 0x66 prefix... · ae11aed9
      Craig Topper authored
      Separate the concept of 16-bit/32-bit operand size controlled by 0x66 prefix and the current mode from the concept of SSE instructions using 0x66 prefix as part of their encoding without being affected by the mode.
      
      This should allow SSE instructions to be encoded correctly in 16-bit mode which r198586 probably broke.
      
      llvm-svn: 199193
      ae11aed9
    • Kostya Serebryany's avatar
      [asan] Include <sys/stat.h> if __x86_64__ is defined · 47d5569d
      Kostya Serebryany authored
      struct stat defined in <asm/stat.h> is incorrect for x32.  <asm/stat.h>
      is included to get struct __old_kernel_stat.  But struct __old_kernel_stat
      isn't used for x86-64 nor x32.  This patch includes <sys/stat.h> instead
      of <asm/stat.h> and comments out size check of struct __old_kernel_stat
      for x86-64.
      
      Patch by H.J. Lu
      
      llvm-svn: 199192
      47d5569d
    • Duncan P. N. Exon Smith's avatar
      LTO: add API to set strategy for -internalize · 43ea3478
      Duncan P. N. Exon Smith authored
      Add API to LTOCodeGenerator to specify a strategy for the -internalize
      pass.
      
      This is a new attempt at Bill's change in r185882, which he reverted in
      r188029 due to problems with the gold linker.  This puts the onus on the
      linker to decide whether (and what) to internalize.
      
      In particular, running internalize before outputting an object file may
      change a 'weak' symbol into an internal one, even though that symbol
      could be needed by an external object file --- e.g., with arclite.
      
      This patch enables three strategies:
      
      - LTO_INTERNALIZE_FULL: the default (and the old behaviour).
      - LTO_INTERNALIZE_NONE: skip -internalize.
      - LTO_INTERNALIZE_HIDDEN: only -internalize symbols with hidden
        visibility.
      
      LTO_INTERNALIZE_FULL should be used when linking an executable.
      
      Outputting an object file (e.g., via ld -r) is more complicated, and
      depends on whether hidden symbols should be internalized.  E.g., for
      ld -r, LTO_INTERNALIZE_NONE can be used when -keep_private_externs, and
      LTO_INTERNALIZE_HIDDEN can be used otherwise.  However,
      LTO_INTERNALIZE_FULL is inappropriate, since the output object file will
      eventually need to link with others.
      
      lto_codegen_set_internalize_strategy() sets the strategy for subsequent
      calls to lto_codegen_write_merged_modules() and lto_codegen_compile*().
      
      <rdar://problem/14334895>
      
      llvm-svn: 199191
      43ea3478
    • David Majnemer's avatar
      Sema: Predefine size_t in MSVC Compatibility mode · 1de36917
      David Majnemer authored
      MSVC defines size_t without any explicit declarations.  This change
      allows us to be compatible with TUs that depend on this declaration
      appearing from nowhere.
      
      llvm-svn: 199190
      1de36917
    • Jakob Stoklund Olesen's avatar
      This test is passing on SPARC. · 899b4f36
      Jakob Stoklund Olesen authored
      llvm-svn: 199189
      899b4f36
    • Jakob Stoklund Olesen's avatar
      Puny 24-byte structs are returned by value on SPARC. · 6e1aaf27
      Jakob Stoklund Olesen authored
      Pad these structs up so they are sret-returned even on that
      architecture.
      
      llvm-svn: 199188
      6e1aaf27
    • Jakob Stoklund Olesen's avatar
      Always let value types influence register classes. · b6b35a49
      Jakob Stoklund Olesen authored
      When creating a virtual register for a def, the value type should be
      used to pick the register class. If we only use the register class
      constraint on the instruction, we might pick a too large register class.
      
      Some registers can store values of different sizes. For example, the x86
      xmm registers can hold f32, f64, and 128-bit vectors. The three
      different value sizes are represented by register classes with identical
      register sets: FR32, FR64, and VR128. These register classes have
      different spill slot sizes, so it is important to use the right one.
      
      The register class constraint on an instruction doesn't necessarily care
      about the size of the value its defining. The value type determines
      that.
      
      This fixes a problem where InstrEmitter was picking 32-bit register
      classes for 64-bit values on SPARC.
      
      llvm-svn: 199187
      b6b35a49
    • Jakob Stoklund Olesen's avatar
      Switch the NEON register class from QPR to DPair. · 20912062
      Jakob Stoklund Olesen authored
      The already allocatable DPair superclass contains odd-even D register
      pair in addition to the even-odd pairs in the QPR register class. There
      is no reason to constrain the set of D register pairs that can be used
      for NEON values. Any NEON instructions that require a Q register will
      automatically constrain the register class to QPR.
      
      The allocation order for DPair begins with the QPR registers, so
      register allocation is unlikely to change much.
      
      llvm-svn: 199186
      20912062
    • Chandler Carruth's avatar
      e2d5663b
    • Marshall Clow's avatar
      Rename libc++ internal templates __is_void, __is_integral,... · ec931c07
      Marshall Clow authored
      Rename libc++ internal templates __is_void, __is_integral, __is_floating_point, __is_pointer, __is_function_imp, __is_function, __is_member_function_pointer, __is_member_pointer, __is_signed_impl, __is_signed, __is_unsigned_impl, __is_unsigned to __libcpp_is_XXX, because some compilers have decided that __is_XXX are keywords. No functionality change.
      
      llvm-svn: 199184
      ec931c07
    • Chandler Carruth's avatar
      Remove the last weird subproject, 'privbracket'. · 9384786b
      Chandler Carruth authored
      llvm-svn: 199183
      9384786b
    • Chandler Carruth's avatar
      Add checks to configure for sufficiently modern host compilers. This · 75a6545d
      Chandler Carruth authored
      requires Clang 3.1 or GCC 4.7. If the compiler isn't Clang or GCC, we
      don't try to do any sanity checking, but this give us at least
      a reasonable baseline of modern compilers.
      
      Also, I'm not claiming that this is the best way to do compiler version
      tests. I'm happy for anyone to suggest better ways of doing this test.
      
      llvm-svn: 199182
      75a6545d
Loading