| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This reverts commit https://reviews.llvm.org/rL344150 which causes
MachineOutliner related failures on the ppc64le multistage buildbot.
llvm-svn: 344526
|
|
|
|
|
|
|
|
|
| |
This is currently a clang extension and a resolution
of the defect report in the C++ Standard.
Differential Revision: https://reviews.llvm.org/D46441
llvm-svn: 344150
|
|
|
|
|
|
|
| |
It is not needed after LLVM r327734. Now it will be easier to copy-paste
IR symbol names from Clang.
llvm-svn: 327738
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The tests that failed on a windows host have been fixed.
Original message:
Start setting dso_local for COFF.
With this there are still some GVs where we don't set dso_local
because setGVProperties is never called. I intend to fix that in
followup commits. This is just the bare minimum to teach
shouldAssumeDSOLocal what it should do for COFF.
llvm-svn: 325940
|
|
|
|
|
|
|
|
| |
This reverts commit r325915.
It will take some time to fix the failures on a windows host.
llvm-svn: 325929
|
|
|
|
|
|
|
|
|
| |
With this there are still some GVs where we don't set dso_local
because setGVProperties is never called. I intend to fix that in
followup commits. This is just the bare minimum to teach
shouldAssumeDSOLocal what it should do for COFF.
llvm-svn: 325915
|
|
|
|
|
|
|
|
| |
This allows __try inside __finally to work.
Fixes PR34939
llvm-svn: 315707
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: We implement structured exception handling (SEH) by generating filter functions for functions that use exceptions. Currently, we use associative comdats to ensure that the filter functions are preserved if and only if the functions we generated them for are preserved. This can lead to problems when generating COFF objects - LLVM may decide to inline a function that uses SEH and remove its body, at which point we will end up with a comdat that COFF cannot represent. To avoid running into that situation, this change makes us not use associative comdats for SEH filter functions. We can still get the benefits we used the associative comdats for: we will always preserve filter functions we use, and dead stripping can eliminate the ones we don't use.
Reviewers: rnk, pcc, ruiu
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D30117
llvm-svn: 295872
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Much to my surprise, '-disable-llvm-optzns' which I thought was the
magical flag I wanted to get at the raw LLVM IR coming out of Clang
deosn't do that. It still runs some passes over the IR. I don't want
that, I really want the *raw* IR coming out of Clang and I strongly
suspect everyone else using it is in the same camp.
There is actually a flag that does what I want that I didn't know about
called '-disable-llvm-passes'. I suspect many others don't know about it
either. It both does what I want and is much simpler.
This removes the confusing version and makes that spelling of the flag
an alias for '-disable-llvm-passes'. I've also moved everything in Clang
to use the 'passes' spelling as it seems both more accurate (*all* LLVM
passes are disabled, not just optimizations) and much easier to remember
and spell correctly.
This is part of simplifying how Clang drives LLVM to make it cleaner to
wire up to the new pass manager.
Differential Revision: https://reviews.llvm.org/D28047
llvm-svn: 290392
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We might get into bad situations where we try to embed the signature of
an inner lambda into an outer lambda which cannot work: the inner lambda
wants to embed the name of the outer lambda!
Instead, omit the return type for lambdas.
This fixes PR26105.
N.B. While we are here, make lambdas nested within functions use an
artificial scope so that they can get demangled.
llvm-svn: 258003
|
|
|
|
|
|
|
|
|
|
| |
Depends on D15139.
Reviewers: rnk
Differential Revision: http://reviews.llvm.org/D15140
llvm-svn: 255423
|
|
|
|
|
|
|
| |
Testing has shown that it is at least as reliable as the old landingpad
pattern matching code.
llvm-svn: 249647
|
|
|
|
|
|
| |
This should do the right thing for stack realignment prologues.
llvm-svn: 241644
|
|
|
|
| |
llvm-svn: 239941
|
|
|
|
|
|
|
| |
The type for abnormal_termination can't be an i1, it an i8.
Filter functions return 'LONG', not 'int'.
llvm-svn: 235161
|
|
|
|
|
|
|
| |
The frameescape intrinsic cannot be inlined, so I fixed the inliner in
r234937. This should address PR23216.
llvm-svn: 234942
|
|
|
|
| |
llvm-svn: 234789
|
|
|
|
| |
llvm-svn: 234787
|
|
|
|
| |
llvm-svn: 234786
|
|
|
|
|
|
|
| |
Such helpers should always be comdat with the parent function and have
internal linkage.
llvm-svn: 234618
|
|
|
|
|
|
|
| |
LLVM doesn't support non-call exceptions, so inlining makes it harder to
catch such asynchronous exceptions.
llvm-svn: 228876
|
|
|
|
|
|
|
| |
Disabling exceptions applies nounwind to lots of functions. SEH catches
asynch exceptions, so emit the landing pad anyway.
llvm-svn: 228769
|
|
|
|
|
|
|
|
|
|
|
| |
After r228258, Clang started emitting C++ EH IR that LLVM wasn't ready
to deal with, even when exceptions were disabled with /EHs-. This time,
make /EHs- turn off -fexceptions while still emitting exceptional
constructs in functions using __try. Since Sema rejects C++ exception
handling constructs before CodeGen, landingpads should only appear in
such functions as the result of a __try.
llvm-svn: 228329
|
|
|
|
|
|
|
|
|
| |
It caused a chromium base unittest that tests throwing and catching SEH
exceptions to fail (http://crbug.com/455488) and I suspect it might also
be the cause of the chromium clang win 64-bit shared release builder timing
out during compiles. So revert to see if that's true.
llvm-svn: 228262
|
|
There are four major kinds of declarations that cause code generation:
- FunctionDecl (includes CXXMethodDecl etc)
- ObjCMethodDecl
- BlockDecl
- CapturedDecl
This patch tracks __try usage on FunctionDecls and diagnoses __try usage
in other decls. If someone wants to use __try from ObjC, they can use it
from a free function, since the ObjC code will need an ObjC-style EH
personality.
Eventually we will want to look through CapturedDecls and track SEH
usage on the parent FunctionDecl, if present.
llvm-svn: 228058
|