[PATCH] D36098: [AArch64] Don't define __LP64__ when targeting Windows

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added subscribers: kristof.beyls, javed.absar, rengolin, aemerson. Windows/ARM64 is a LLP64 environment, so don't set this default define. https://reviews.llvm.org/D36098 Files: lib/Basic/Targets/AArch64.cpp test/Preprocessor/init.c Index:

[PATCH] D36105: [AArch64] Ignore stdcall and similar on aarch64/windows

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added subscribers: kristof.beyls, javed.absar, rengolin, aemerson. This is similar to what's done on arm and x86_64, where these calling conventions are silently ignored, as in SVN r245076 (https://reviews.llvm.org/D12034).

[PATCH] D36105: [AArch64] Ignore stdcall and similar on aarch64/windows

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: lib/Basic/Targets/AArch64.cpp:466-467 + case CC_X86ThisCall: + case CC_X86FastCall: + case CC_X86VectorCall: +return CCCR_Ignore; rnk wrote: > Do they really ignore __fastcall and __vectorcall on arm64? > > I

[PATCH] D36100: [Attr] Make TargetWindows and TargetMicrosoftCXXABI match on aarch64 as well

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL309620: [Attr] Make TargetWindows and TargetMicrosoftCXXABI match on aarch64 as well (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D36100?vs=108971=108992#toc Repository:

[PATCH] D36098: [AArch64] Don't define __LP64__ when targeting Windows

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL309619: [AArch64] Don't define __LP64__ when targeting Windows (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D36098?vs=108968=108991#toc Repository: rL LLVM

[PATCH] D36099: [test] Fix mistagged CHECK-NOT-lines for AARCH64-DARWIN in Preprocessor/init.c

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL309618: [test] Fix mistagged CHECK-NOT-lines for AARCH64-DARWIN in Preprocessor/init.c (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D36099?vs=108969=108990#toc Repository:

[PATCH] D36100: [Attr] Make TargetWindows and TargetMicrosoftCXXABI match on aarch64 as well

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added subscribers: kristof.beyls, rengolin, aemerson. https://reviews.llvm.org/D36100 Files: include/clang/Basic/Attr.td test/Sema/dllimport.c Index: test/Sema/dllimport.c === ---

[PATCH] D36111: [COFF, ARM64] Add MS builtins __dmb, __dsb, __isb

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: include/clang/Basic/BuiltinsAArch64.def:49 // Memory barrier +BUILTIN(__dmb, "vUi", "nc") +BUILTIN(__dsb, "vUi", "nc") Shouldn't these be limited to MSVC mode only? Have a look at `BuiltinsARM.def`, where there's

[PATCH] D36099: [test] Fix mistagged CHECK-NOT-lines for AARCH64-DARWIN in Preprocessor/init.c

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added subscribers: kristof.beyls, rengolin, aemerson. https://reviews.llvm.org/D36099 Files: test/Preprocessor/init.c Index: test/Preprocessor/init.c === --- test/Preprocessor/init.c +++

[PATCH] D36072: [Targets] Move addCygMingDefines into the arch-independent Targets.cpp (NFC)

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL309598: [Targets] Move addCygMingDefines into the arch-independent Targets.cpp (NFC) (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D36072?vs=108865=108954#toc Repository:

[PATCH] D36105: [AArch64] Ignore stdcall and similar on aarch64/windows

2017-08-01 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: lib/Basic/Targets/AArch64.cpp:466-467 + case CC_X86ThisCall: + case CC_X86FastCall: + case CC_X86VectorCall: +return CCCR_Ignore; mstorsjo wrote: > rnk wrote: > > Do they really ignore __fastcall and

[PATCH] D36364: [AArch64] Add support for a MinGW AArch64 target

2017-08-13 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. @compnerd - are you ok with this one as well? https://reviews.llvm.org/D36364 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D36364: [AArch64] Add support for a MinGW AArch64 target

2017-08-13 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL310798: [AArch64] Add support for a MinGW AArch64 target (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D36364?vs=109935=110886#toc Repository: rL LLVM

[PATCH] D35008: [AArch64] Produce the right kind of va_arg for windows

2017-07-13 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. Ping - the dependency, https://reviews.llvm.org/D35006, has now been committed. https://reviews.llvm.org/D35008 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D35008: [AArch64] Produce the right kind of va_arg for windows

2017-07-13 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL307933: [AArch64] Produce the right kind of va_arg for windows (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D35008?vs=105392=106471#toc Repository: rL LLVM

[PATCH] D34475: [AArch64] Add support for __builtin_ms_va_list on aarch64

2017-07-13 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: include/clang/Basic/BuiltinsAArch64.def:65 +// Win64-compatible va_list functions +BUILTIN(__builtin_ms_va_start, "vc*&.", "nt") +BUILTIN(__builtin_ms_va_end, "vc*&", "n") rnk wrote: > I strongly suspect that Microsoft

[PATCH] D35465: [clang] Remove redundant check-prefix=CHECK from tests. NFC.

2017-07-17 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo accepted this revision. mstorsjo added a comment. This revision is now accepted and ready to land. Looks ok to me, at least for the one file that I wrote. https://reviews.llvm.org/D35465 ___ cfe-commits mailing list

[PATCH] D34475: [AArch64] Add support for __builtin_ms_va_list on aarch64

2017-07-17 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. Reid, with https://reviews.llvm.org/D34474 approved, does this look like what you had in mind? https://reviews.llvm.org/D34475 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D34475: [AArch64] Add support for __builtin_ms_va_list on aarch64

2017-07-17 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL308218: [AArch64] Add support for __builtin_ms_va_list on aarch64 (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D34475?vs=106701=106941#toc Repository: rL LLVM

[PATCH] D34475: [AArch64] Add support for __builtin_ms_va_list on aarch64

2017-07-14 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 106701. mstorsjo added a comment. Updated for the new version of https://reviews.llvm.org/D34474. https://reviews.llvm.org/D34475 Files: include/clang-c/Index.h include/clang/Basic/Builtins.def include/clang/Basic/BuiltinsX86.def

[PATCH] D34475: [AArch64] Add support for __builtin_ms_va_list on aarch64

2017-07-14 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 106690. mstorsjo edited the summary of this revision. mstorsjo added a comment. Initial attempt at unifying the use of __builtin_ms_va_list and calling conventions between x86_64 and aarch64. This goes with the current (un-unified) version of

[PATCH] D35529: [COFF, ARM64] Make +reserve-x18 the default

2017-07-18 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. Wouldn't it make more sense to set this by default within LLVM, where it's already enabled by default for darwin? Currently there's this code there: AArch64Subtarget::AArch64Subtarget(const Triple , const std::string , const

[PATCH] D35546: [AArch64] Produce correct defaultlib directives for windows in MSVC style

2017-07-18 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added subscribers: kristof.beyls, rengolin, aemerson. https://reviews.llvm.org/D35546 Files: lib/CodeGen/TargetInfo.cpp test/CodeGen/pragma-comment.c Index: test/CodeGen/pragma-comment.c

[PATCH] D35546: [AArch64] Produce correct defaultlib directives for windows in MSVC style

2017-07-19 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL308584: [AArch64] Produce correct defaultlib directives for windows in MSVC style (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D35546?vs=107058=107443#toc Repository: rL

[PATCH] D35934: [Headers] Add a test for arm64intr.h

2017-07-27 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL309314: [Headers] Add a test for arm64intr.h (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D35934?vs=108438=108515#toc Repository: rL LLVM

[PATCH] D35862: [clang] Add ARM64 support to armintr.h for MSVC compatibility

2017-07-25 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. The Microsoft version of `intrin.h` includes a header named `arm64intr.h` (IIRC), I think it'd be better for compatibility if we also provided a file with the same name instead of reusing this one. https://reviews.llvm.org/D35862

[PATCH] D35008: [AArch64] Produce the right kind of va_arg for windows

2017-07-06 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo marked an inline comment as done. mstorsjo added inline comments. Comment at: lib/CodeGen/TargetInfo.cpp:4769 DarwinPCS }; efriedma wrote: > Can we extend ABIKind rather than adding a separate boolean? Sure. I was afraid there was a lot of

[PATCH] D35008: [AArch64] Produce the right kind of va_arg for windows

2017-07-06 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 105392. mstorsjo marked an inline comment as done. mstorsjo added a comment. Herald added a subscriber: javed.absar. Added a testcase, using a different Kind instead of adding a separate bool. https://reviews.llvm.org/D35008 Files:

[PATCH] D34475: [RFC] [AArch64] Add support for __builtin_ms_va_list on aarch64

2017-07-05 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 105200. mstorsjo added a comment. Did a minor adjustment, to make sure a plain va_arg produces the right kind of output, when targeting windows directly (while the rest of the patch mostly is about supporting the MS ABI while targeting a different OS).

[PATCH] D34475: [RFC] [AArch64] Add support for __builtin_ms_va_list on aarch64

2017-07-05 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 105254. mstorsjo edited the summary of this revision. mstorsjo added reviewers: mgrang, t.p.northover. mstorsjo added a comment. Split the patch into two; one for generic handling of va_arg for win/arm64, and one for using the same functionality while

[PATCH] D35008: [AArch64] Produce the right kind of va_arg for windows

2017-07-05 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added subscribers: kristof.beyls, rengolin, aemerson. On windows on arm64, the va_list is a plain pointer. https://reviews.llvm.org/D35008 Files: lib/CodeGen/TargetInfo.cpp Index: lib/CodeGen/TargetInfo.cpp

[PATCH] D36364: [AArch64] Add support for a MinGW AArch64 target

2017-08-05 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added subscribers: kristof.beyls, javed.absar, rengolin, aemerson. The machine name `arm64pe` passed to the linker is completely made up; gnu binutils doesn't (afaik) support this, so it only has to match what the corresponding (not yet merged) lld linker

[PATCH] D36363: [test] Remove an unintentional -x cl flag in an aarch64-windows test

2017-08-05 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added subscribers: kristof.beyls, Anastasia, rengolin, aemerson. This test was only intended to test compiling C, not OpenCL. https://reviews.llvm.org/D36363 Files: test/Preprocessor/predefined-macros.c Index: test/Preprocessor/predefined-macros.c

[PATCH] D36364: [AArch64] Add support for a MinGW AArch64 target

2017-08-06 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: lib/Driver/ToolChains/MinGW.cpp:122-131 if (TC.getArch() == llvm::Triple::x86) CmdArgs.push_back("i386pe"); - if (TC.getArch() == llvm::Triple::x86_64) + else if (TC.getArch() == llvm::Triple::x86_64)

[PATCH] D36072: [Targets] Move addCygMingDefines into the arch-independent Targets.cpp (NFC)

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. This fixes a dependency inconsistency, where addMinGWDefines in Targets.cpp (used from other architectures than X86) called the addCygMingDefines function in X86.h. This was inconsistently split in SVN r308791 (https://reviews.llvm.org/D35701).

[PATCH] D36111: [COFF, ARM64] Add MS builtins __dmb, __dsb, __isb

2017-07-31 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: include/clang/Basic/BuiltinsAArch64.def:49 // Memory barrier +BUILTIN(__dmb, "vUi", "nc") +BUILTIN(__dsb, "vUi", "nc") mgrang wrote: > mstorsjo wrote: > > Shouldn't these be limited to MSVC mode only? Have a look at

[PATCH] D36111: [COFF, ARM64] Add MS builtins __dmb, __dsb, __isb

2017-08-01 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. In https://reviews.llvm.org/D36111#826878, @mgrang wrote: > @mstorsjo I see that spec2000/eon calls __getReg, _ReadStatusReg and > _WriteStatusReg intrinsics for ARM64. I think I would need to implement them > in llvm. Do you know where can I find a doc explaining

[PATCH] D36105: [AArch64] Ignore stdcall and similar on aarch64/windows

2017-08-07 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. In https://reviews.llvm.org/D36105#834225, @mgrang wrote: > In https://reviews.llvm.org/D36105#834007, @mstorsjo wrote: > > > Ping @mgrang, can you check the above with MSVC? I'd like to move forward > > with this in one form or another. > > > Yes, I checked with MSVC

[PATCH] D36105: [AArch64] Ignore stdcall and similar on aarch64/windows

2017-08-07 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL310303: [AArch64] Ignore stdcall and similar on aarch64/windows (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D36105?vs=108977=110082#toc Repository: rL LLVM

[PATCH] D36364: [AArch64] Add support for a MinGW AArch64 target

2017-08-06 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: lib/Driver/ToolChains/MinGW.cpp:130 + case llvm::Triple::arm: + case llvm::Triple::thumb: CmdArgs.push_back("thumb2pe"); martell wrote: > I believe this was left incase someone wanted to do windows ce in future.

[PATCH] D36363: [test] Remove an unintentional -x cl flag in an aarch64-windows test

2017-08-06 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL310222: [test] Remove an unintentional -x cl flag in an aarch64-windows test (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D36363?vs=109889=109936#toc Repository: rL LLVM

[PATCH] D36364: [AArch64] Add support for a MinGW AArch64 target

2017-08-06 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 109916. mstorsjo added a comment. Updated to use a switch, added a mapping of a missed case of thumb while reformatting the if to a switch. https://reviews.llvm.org/D36364 Files: lib/Basic/Targets.cpp lib/Basic/Targets/AArch64.cpp

[PATCH] D36364: [AArch64] Add support for a MinGW AArch64 target

2017-08-06 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 109935. mstorsjo added a comment. Added a fixme comment about this being incorrect for WinCE. https://reviews.llvm.org/D36364 Files: lib/Basic/Targets.cpp lib/Basic/Targets/AArch64.cpp lib/Basic/Targets/AArch64.h

[PATCH] D36364: [AArch64] Add support for a MinGW AArch64 target

2017-08-06 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: lib/Driver/ToolChains/MinGW.cpp:129 + else if (TC.getArch() == llvm::Triple::aarch64) +CmdArgs.push_back("arm64pe"); + else martell wrote: > I believe the reason I used thumb2pe for the arm triple is because MS

[PATCH] D36105: [AArch64] Ignore stdcall and similar on aarch64/windows

2017-08-07 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. Ping @mgrang, can you check the above with MSVC? I'd like to move forward with this in one form or another. https://reviews.llvm.org/D36105 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D34475: [RFC] [AArch64] Add support for __builtin_ms_va_list on aarch64

2017-06-21 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added subscribers: kristof.beyls, javed.absar, rengolin, aemerson. This behaves mostly the same as __builtin_ms_va_list on x86_64; a va_list on windows on aarch64 is a single pointer. In order to signal the kind of va_list to llvm for handling of va_start,

[PATCH] D38576: |libunwind] [docs] Mention that SjLj works on any OS on the archs where supported by the compiler

2017-10-05 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. https://reviews.llvm.org/D38576 Files: docs/index.rst Index: docs/index.rst === --- docs/index.rst +++ docs/index.rst @@ -50,6 +50,7 @@ LinuxARM Clang, GCC EHABI Bare

[PATCH] D38576: |libunwind] [docs] Mention that SjLj works on any OS on the archs where supported by the compiler

2017-10-06 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL315090: [docs] Mention that SjLj works on any OS on the archs where supported by the… (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D38576?vs=117778=118054#toc Repository:

[PATCH] D38380: [libunwind] Add CMake support for building for MinGW

2017-10-02 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL314716: Add CMake support for building for MinGW (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D38380?vs=117046=117417#toc Repository: rL LLVM

[PATCH] D38680: [libunwind] Fix handling of DW_CFA_GNU_args_size

2017-10-09 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. This effectively reverts SVN r204290 and r204292 (back when this code was part of libcxxabi). According to SVN r204290, the primary architecture using the DW_CFA_GNU_args_size opcode is VAX. However, clang also produces it on X86 when it has done

[PATCH] D38679: [libunwind] Support dwarf unwinding on i386 windows

2017-10-09 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. This builds on some parts from https://reviews.llvm.org/D33601 - some of them were commented on before. This patch contains comments and explanations about those non-obvious parts. https://reviews.llvm.org/D38679 Files: docs/index.rst src/AddressSpace.hpp

[PATCH] D38679: [libunwind] Support dwarf unwinding on i386 windows

2017-10-09 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: src/AddressSpace.hpp:388-389 + found_obj = true; + } else if (!strncmp((const char *)pish->Name, ".eh_frame", + IMAGE_SIZEOF_SHORT_NAME)) { +info.dwarf_section = begin;

[PATCH] D38679: [libunwind] Support dwarf unwinding on i386 windows

2017-10-09 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: src/AddressSpace.hpp:521 unw_word_t *offset) { -#ifndef _LIBUNWIND_IS_BAREMETAL +#if !defined(_LIBUNWIND_IS_BAREMETAL) && !defined(_WIN32) Dl_info dyldInfo; jroelofs

[PATCH] D38900: libunwind: document tested FreeBSD configs and sort OS list

2017-10-14 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo accepted this revision. mstorsjo added a comment. This revision is now accepted and ready to land. Seems ok to me, with whatever other architectures it's verified on as well. https://reviews.llvm.org/D38900 ___ cfe-commits mailing list

[PATCH] D38704: [libunwind] Emulate pthread rwlocks via SRW locks for windows

2017-10-14 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. In https://reviews.llvm.org/D38704#892479, @zturner wrote: > I'm a little nervous about re-inventing a poor man's version of a reader > writer lock. Can we not just copy LLVM's? I had a closer look at this, and noticed the following: - The LLVM RWMutex class on

[PATCH] D38819: [libunwind] Add support for dwarf unwinding on windows on x86_64

2017-10-15 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 119068. mstorsjo added a comment. Use `__SIZEOF_POINTER__` instead of checking `__LP64__` together with `_WIN64`. Changed `_WIN32` into `_WIN64` within the assembly sources for consistency/clarity. Removed one type definition ifdef by just using

[PATCH] D38704: [libunwind] Emulate pthread rwlocks via SRW locks for windows

2017-10-15 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. In https://reviews.llvm.org/D38704#897935, @majnemer wrote: > I don't think we should depend on LLVM for the locking stuff. This sort of > infrastructure is in the same bucket as the demangler which we haven't really > solved. > > I *do* find it weird to do it this

[PATCH] D38819: [libunwind] Add support for dwarf unwinding on windows on x86_64

2017-10-15 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: include/unwind.h:125 uintptr_t private_2; // holds sp that phase1 found for phase2 to use -#ifndef __LP64__ +#if !defined(__LP64__) && !defined(_WIN64) // The implementation of _Unwind_Exception uses an attribute mode on the

[PATCH] D38704: [libunwind] Abstract rwlocks into a class, provide a SRW lock implementation for windows

2017-10-15 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 119094. mstorsjo retitled this revision from "[libunwind] Emulate pthread rwlocks via SRW locks for windows" to "[libunwind] Abstract rwlocks into a class, provide a SRW lock implementation for windows". mstorsjo edited the summary of this revision.

[PATCH] D38819: [libunwind] Add support for dwarf unwinding on windows on x86_64

2017-10-15 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: docs/index.rst:55 NetBSD x86_64 Clang, GCC DWARF CFI -Windows i386 ClangDWARF CFI +Windows i386, x86_64 ClangDWARF CFI

[PATCH] D36111: [COFF, ARM64] Add MS builtins __dmb, __dsb, __isb

2017-10-11 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. @mgrang, did you ever get to completing this? I've got a need for this now (only `__dmb` so far), and if you don't have time, I can try to finish it. https://reviews.llvm.org/D36111 ___ cfe-commits mailing list

[PATCH] D36111: [COFF, ARM64] Add MS builtins __dmb, __dsb, __isb

2017-10-12 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. This one can be abandoned now. https://reviews.llvm.org/D36111 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D37468: [libc++] Redirect strftime_l to the locale-ignorant strftime on mingw

2017-09-05 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL312617: Redirect strftime_l to the locale-ignorant strftime on mingw (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D37468?vs=113838=113956#toc Repository: rL LLVM

[PATCH] D37530: [MinGW] Don't link -lmsvcrt if a different msvcrt version is to be linked

2017-09-08 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 114429. mstorsjo retitled this revision from "[MinGW] Allow overriding which version of msvcrt to link to" to "[MinGW] Don't link -lmsvcrt if a different msvcrt version is to be linked". mstorsjo edited the summary of this revision. mstorsjo added a

[PATCH] D37206: [ItaniumCXXABI] Always use linkonce_odr linkage for RTTI data on MinGW

2017-08-30 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 113309. mstorsjo added a comment. The previous diff lacked the extra context around the diff - fixed. https://reviews.llvm.org/D37206 Files: lib/CodeGen/ItaniumCXXABI.cpp test/CodeGenCXX/rtti-mingw64.cpp Index: test/CodeGenCXX/rtti-mingw64.cpp

[PATCH] D37206: [ItaniumCXXABI] Always use linkonce_odr linkage for RTTI data on MinGW

2017-08-30 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: lib/CodeGen/ItaniumCXXABI.cpp:2994 + CGM.getContext().getTargetInfo().getTriple().isOSWindows(); + // MinGW always uses LinkOnceODRLinkage for type info. + if (RD->isDynamicClass() && !IsMinGW)

[PATCH] D37206: [ItaniumCXXABI] Always use linkonce_odr linkage for RTTI data on MinGW

2017-08-30 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: lib/CodeGen/ItaniumCXXABI.cpp:2994 + CGM.getContext().getTargetInfo().getTriple().isOSWindows(); + // MinGW always uses LinkOnceODRLinkage for type info. + if (RD->isDynamicClass() && !IsMinGW)

[PATCH] D37530: [MinGW] Allow overriding which version of msvcrt to link to

2017-09-06 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. This allows linking to e.g. msvcr120.dll or ucrtbase.dll instead of the unversioned (and officially unsupported) msvcrt.dll. In GCC setups, this can be overridden by using custom spec files, but this isn't supported in clang. This is just an initial attempt at

[PATCH] D37727: Driver: Remove custom MinGW linker detection

2017-09-12 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. I'm not sure I like this direction. In my setups, a build-time default isn't right since I'm using the same clang builds for both native-on-linux building (with the default `ld` as linker) and cross-building targeting windows (using `ldd`), and keeping the code that

[PATCH] D37134: [libc++] Use CMAKE_AR for merging static libraries

2017-09-13 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL313122: Use CMAKE_AR instead of the system default 'ar' for merging static libraries (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D37134?vs=114908=114981#toc Repository:

[PATCH] D37133: [libc++] Handle object files named *.obj in merge_archives.py

2017-09-09 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. Ping @EricWF, who added this script https://reviews.llvm.org/D37133 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D37134: [libc++] Rerun ranlib manually after merging the static libraries

2017-09-09 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. Ping @EricWF https://reviews.llvm.org/D37134 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D33620: [CodeGenCXX] do not default to dllimport storage for mingw-w64

2017-09-12 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. Does this break things for current users of clang as a drop-in replacement for gcc in mingw setups, while using e.g. a gcc provided `libstdc++-6.dll`? OTOH, removing dllimport usually isn't too much of an issue - the calls go via thunks which is non-ideal and

[PATCH] D37727: Driver: Remove custom MinGW linker detection

2017-09-12 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. Actually, after testing this a bit more and looking at it, I withdraw my earlier complaints - this does indeed seem to work fine with my test setup. The generic `TC.GetLinkerPath()` picks up `-fuse-ld=lld` correctly and converts it into `ld.lld` which should be

[PATCH] D37727: Driver: Remove custom MinGW linker detection

2017-09-12 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. In https://reviews.llvm.org/D37727#867753, @martell wrote: > In https://reviews.llvm.org/D37727#867627, @mstorsjo wrote: > > > I'm not sure I like this direction. In my setups, a build-time default > > isn't right since I'm using the same clang builds for both

[PATCH] D37727: Driver: Remove custom MinGW linker detection

2017-09-12 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. Looks good to me (but maybe someone else should approve it as well) Repository: rL LLVM https://reviews.llvm.org/D37727 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D37133: [libc++] Handle object files named *.obj in merge_archives.py

2017-09-12 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL313072: Handle object files named *.obj in merge_archives.py (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D37133?vs=114893=114906#toc Repository: rL LLVM

[PATCH] D37134: [libc++] Use CMAKE_AR for merging static libraries

2017-09-12 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 114907. mstorsjo retitled this revision from "[libc++] Rerun ranlib manually after merging the static libraries" to "[libc++] Use CMAKE_AR for merging static libraries". mstorsjo edited the summary of this revision. https://reviews.llvm.org/D37134 Files:

[PATCH] D37134: [libc++] Use CMAKE_AR for merging static libraries

2017-09-12 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 114908. mstorsjo added a comment. The previous patch actually lacked the 's' option that the summary talked about https://reviews.llvm.org/D37134 Files: lib/CMakeLists.txt utils/merge_archives.py Index: utils/merge_archives.py

[PATCH] D37133: [libc++] Handle object files named *.obj in merge_archives.py

2017-09-12 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: utils/merge_archives.py:121 files = glob.glob(os.path.join(temp_directory_root, '*.o')) if not files: EricWF wrote: > How about simply using `*.o*`? Sure, that would probably work as well.

[PATCH] D37133: [libc++] Handle object files named *.obj in merge_archives.py

2017-09-12 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 114893. mstorsjo added a comment. Using `*.o*` instead of checking `*.obj` separately. https://reviews.llvm.org/D37133 Files: utils/merge_archives.py Index: utils/merge_archives.py ===

[PATCH] D37134: [libc++] Rerun ranlib manually after merging the static libraries

2017-09-12 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. In https://reviews.llvm.org/D37134#868497, @EricWF wrote: > Ironically I think parts of this change should be moved into > `merge_archives.py`. > > > the ar used in merge_archives.py might not be the right one for the target > > OK, then we should modify

[PATCH] D37530: [MinGW] Allow overriding which version of msvcrt to link to

2017-09-06 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. In https://reviews.llvm.org/D37530#862644, @rnk wrote: > What do you think of letting people spell this as `-lmsvcrt120`? We could > forward those options and suppress our implicit addition of `-lmsvcrt` if we > see `-lmsvcr*` anywhere. That might work and would

[PATCH] D38250: [libunwind] Implement the Get/SetTopOfFunctionStack functions via a __thread TLS variable

2017-09-26 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added a comment. In https://reviews.llvm.org/D38250#880871, @compnerd wrote: > I have a complete implementation for this which is known to work on Windows > at least. Patches for libunwind, or standalone? In any case, please do share if you think it's relevant. > The only thing

[PATCH] D38247: [libunwind] Correct data types in the _Unwind_FunctionContext struct

2017-09-26 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo closed this revision. mstorsjo added a comment. Committed in SVN r314196. https://reviews.llvm.org/D38247 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D38249: [libunwind] Skip building unused parts when targeting SJLJ

2017-09-26 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo closed this revision. mstorsjo marked an inline comment as done. mstorsjo added a comment. Committed in SVN r314197. https://reviews.llvm.org/D38249 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D38380: [libunwind] Add CMake support for building for MinGW

2017-09-28 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added a subscriber: mgorny. This is the cmake specific parts of https://reviews.llvm.org/D33601 (by Martell Malone) split out into a separate patch, to ease getting this part reviewed indendent of the rest of that patch. https://reviews.llvm.org/D38380

[PATCH] D38381: [libunwind] Skip building x86 parts of UnwindRegisters*.S when targeting SjLj

2017-09-28 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added subscribers: kristof.beyls, aemerson. This extends SVN r314197 (https://reviews.llvm.org/D38249) from the arm parts to the whole file (the x86 parts as well). https://reviews.llvm.org/D38381 Files: src/UnwindRegistersRestore.S

[PATCH] D38250: [libunwind] Implement the Get/SetTopOfFunctionStack functions via a __thread TLS variable

2017-09-28 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo updated this revision to Diff 117089. mstorsjo edited the summary of this revision. mstorsjo added a comment. Made the tls variable static, changed ifndef into !defined(). https://reviews.llvm.org/D38250 Files: src/Unwind-sjlj.c Index: src/Unwind-sjlj.c

[PATCH] D38250: [libunwind] Implement the Get/SetTopOfFunctionStack functions via a __thread TLS variable

2017-09-28 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: src/Unwind-sjlj.c:468 +#ifndef __APPLE__ +__thread struct _Unwind_FunctionContext *stack = NULL; compnerd wrote: > I would prefer: > > #if !defined(__APPLE__) Sure, I can change that. Comment

[PATCH] D38381: [libunwind] Skip building x86 parts of UnwindRegisters*.S when targeting SjLj

2017-09-29 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL314492: Skip building x86 parts of UnwindRegisters*.S when targeting SjLj (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D38381?vs=117047=117092#toc Repository: rL LLVM

[PATCH] D38380: [libunwind] Add CMake support for building for MinGW

2017-09-29 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: cmake/config-ix.cmake:38 +else () + set(MINGW_RUNTIME gcc_s gcc) +endif() compnerd wrote: > This seems really weird. `gcc_s` and `gcc` are the same library, the former > is the shared version of the

[PATCH] D38250: [libunwind] Implement the Get/SetTopOfFunctionStack functions via a __thread TLS variable

2017-10-01 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo added inline comments. Comment at: src/Unwind-sjlj.c:481 +#endif // !defined(__APPLE__) + #endif // defined(_LIBUNWIND_BUILD_SJLJ_APIS) compnerd wrote: > mstorsjo wrote: > > compnerd wrote: > > > Can't both of these also be static? > > No, since

[PATCH] D38250: [libunwind] Implement the Get/SetTopOfFunctionStack functions via a __thread TLS variable

2017-10-01 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo abandoned this revision. mstorsjo added a comment. Works fine with the version from r314632 (with a minor fixup in r314635). https://reviews.llvm.org/D38250 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[PATCH] D37530: [MinGW] Don't link -lmsvcrt if a different msvcrt version is to be linked

2017-09-25 Thread Martin Storsjö via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL314138: [MinGW] Don't link -lmsvcrt if a different msvcrt version is to be linked (authored by mstorsjo). Changed prior to commit: https://reviews.llvm.org/D37530?vs=114429=116587#toc Repository: rL

[PATCH] D38247: [libunwind] Correct data types in the _Unwind_FunctionContext struct

2017-09-25 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. This makes it match the definition used within llvm and in libgcc, we previously got the wrong layout on 64 bit. https://reviews.llvm.org/D38247 Files: src/Unwind-sjlj.c Index: src/Unwind-sjlj.c

[PATCH] D38249: [libunwind] Skip building unused parts when targeting SJLJ

2017-09-25 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added subscribers: kristof.beyls, aemerson. When SJLJ exceptions are used, those functions aren't used. This fixes build failures on ARM with SJLJ enabled, such as armv7/iOS. https://reviews.llvm.org/D38249 Files: src/UnwindLevel1.c

[PATCH] D38250: [libunwind] Implement the Get/SetTopOfFunctionStack functions via a __thread TLS variable

2017-09-25 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. When targeting apple platforms, these functions are implemented in Unwind_AppleExtras.cpp, but there's previously no implementation for other platforms. Does `__thread` have any specific runtime requirements on e.g. windows? https://reviews.llvm.org/D38250

[PATCH] D37133: [libc++] Handle object files named *.obj in merge_archives.py

2017-08-25 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. https://reviews.llvm.org/D37133 Files: utils/merge_archives.py Index: utils/merge_archives.py === --- utils/merge_archives.py +++ utils/merge_archives.py @@ -120,6 +120,8 @@ files =

[PATCH] D37134: [libc++] Rerun ranlib manually after merging the static libraries

2017-08-25 Thread Martin Storsjö via Phabricator via cfe-commits
mstorsjo created this revision. Herald added a subscriber: mgorny. In cross build setups, the ar used in merge_archives.py might not be the right one for the target (and the invocation doesn't include the 's' modifier for updating the archive index); make sure to rebuild the index for the

  1   2   3   4   5   6   7   8   9   10   >