| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As defined in LangRef, aliases do not have sections. However, LLVM's
GlobalAlias class inherits from GlobalValue, which means we can read and
set its section. We should probably ban that as a separate change,
since it doesn't make much sense for an alias to have a section that
differs from its aliasee.
Fixes PR18757, where the section was being lost on the global in code
from Clang like:
extern "C" {
__attribute__((used, section("CUSTOM"))) static int in_custom_section;
}
Reviewers: rafael.espindola
Differential Revision: http://llvm-reviews.chandlerc.com/D2758
llvm-svn: 201286
|
|
|
|
| |
llvm-svn: 201285
|
|
|
|
|
|
| |
llvm.org/pr18805 fixed by r201270
llvm-svn: 201284
|
|
|
|
|
|
|
|
|
|
|
| |
to pass through to process_source.
I was insightless then about unknown optional parameters.
(Consider that LINK_LIBS foo bar ADDITIONAL_HEADERS qux quux)
Suggested by Michael Kruse. Thanks!
llvm-svn: 201283
|
|
|
|
|
|
|
|
|
| |
useBitFieldTypeAlignment() and appears to ignore the special
bit-packing semantics of __attribute__((packed)).
Further flesh out an already-extensive comment.
llvm-svn: 201282
|
|
|
|
| |
llvm-svn: 201281
|
|
|
|
| |
llvm-svn: 201280
|
|
|
|
| |
llvm-svn: 201279
|
|
|
|
| |
llvm-svn: 201278
|
|
|
|
|
|
|
| |
sections, at least on MachO. Relax expectations to keep the bots green while I
investigate.
llvm-svn: 201277
|
|
|
|
| |
llvm-svn: 201276
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
logical operations on the i1's driving them. This is a bad idea for every
target I can think of (confirmed with micro tests on all of: x86-64, ARM,
AArch64, Mips, and PowerPC) because it forces the i1 to be materialized into
a general purpose register, whereas consuming it directly into a select generally
allows it to exist only transiently in a predicate or flags register.
Chandler ran a set of performance tests with this change, and reported no
measurable change on x86-64.
llvm-svn: 201275
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These features are new in VS 2013 and are necessary in order to layout
std::ostream correctly. Currently we have an ABI incompatibility when
self-hosting with the 2013 stdlib in our convertible_fwd_ostream wrapper
in gtest.
This change adds another implicit attribute, MSVtorDispAttr, because
implicit attributes are currently the best way to make sure the
information stays on class templates through instantiation.
Reviewers: majnemer
Differential Revision: http://llvm-reviews.chandlerc.com/D2746
llvm-svn: 201274
|
|
|
|
| |
llvm-svn: 201273
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'OK_NonUniformConstValue' to identify operands which are constants but
not constant splats.
The cost model now allows returning 'OK_NonUniformConstValue'
for non splat operands that are instances of ConstantVector or
ConstantDataVector.
With this change, targets are now able to compute different costs
for instructions with non-uniform constant operands.
For example, On X86 the cost of a vector shift may vary depending on whether
the second operand is a uniform or non-uniform constant.
This patch applies the following changes:
- The cost model computation now takes into account non-uniform constants;
- The cost of vector shift instructions has been improved in
X86TargetTransformInfo analysis pass;
- BBVectorize, SLPVectorizer and LoopVectorize now know how to distinguish
between non-uniform and uniform constant operands.
Added a new test to verify that the output of opt
'-cost-model -analyze' is valid in the following configurations: SSE2,
SSE4.1, AVX, AVX2.
llvm-svn: 201272
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
than scalarizing it.
Instead of expanding a packed shift into a sequence of scalar shifts,
the backend now tries (when possible) to convert the vector shift into a
vector multiply.
Before this change, a shift of a MVT::v8i16 vector by a
build_vector of constants was always scalarized into a long sequence of "vector
extracts + scalar shifts + vector insert".
With this change, if there is SSE2 support, we emit a single vector multiply.
This change also affects SSE4.1, AVX, AVX2 shifts:
- A shift of a MVT::v4i32 vector by a build_vector of non uniform constants
is now lowered when possible into a single SSE4.1 vector multiply.
- Packed v16i16 shift left by constant build_vector are now expanded when
possible into a single AVX2 vpmullw.
This change also improves the lowering of AVX512f vector shifts.
Added test CodeGen/X86/vec_shift6.ll with some code examples that are affected
by this change.
llvm-svn: 201271
|
|
|
|
| |
llvm-svn: 201270
|
|
|
|
|
|
|
|
|
| |
This does exactly the same thing as for Win32, except it passes -m64 to
the compiler and the files go in a different directory.
Differential Revision: http://llvm-reviews.chandlerc.com/D2749
llvm-svn: 201269
|
|
|
|
| |
llvm-svn: 201268
|
|
|
|
|
|
|
|
|
| |
entries in fission
Since I just discovered this while poking at other things, here's the
test case so I have it to come back to later.
llvm-svn: 201267
|
|
|
|
|
|
| |
support.
llvm-svn: 201266
|
|
|
|
| |
llvm-svn: 201265
|
|
|
|
| |
llvm-svn: 201264
|
|
|
|
|
|
|
|
|
|
| |
We are now no longer relying on the target-specific call lowering implementation
to lower a stackmap intrinsic call. Instead we perform the call lowering in a
target-independent way directly in the stackmap lowering code. This simplifies
the code and removes the need to fixup the code after the target-specific call
lowering.
llvm-svn: 201263
|
|
|
|
|
|
|
|
|
|
|
| |
documenation)
The ID type for the stackmap and patchpoint intrinsics are in both cases i64.
This fixes an zero extend in the SelectionDAGBuilder that still used i32. This
also updates the target independent instructions STACKMAP and PATCHPOINT to use
the correct type.
llvm-svn: 201262
|
|
|
|
|
|
| |
The demo uses _Unwind_GetIP which is not available on that platform.
llvm-svn: 201261
|
|
|
|
|
|
| |
We don't support using the MS ABI with non-x86/x86_64 targets anyway.
llvm-svn: 201260
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
required for all sections in a module. This can be useful when targets or
code-models place strict requirements on how sections must be laid out
in memory.
If RTDyldMemoryManger::needsToReserveAllocationSpace() is overridden to return
true then the JIT will call the following method on the memory manager, which
can be used to preallocate the necessary memory.
void RTDyldMemoryManager::reserveAllocationSpace(uintptr_t CodeSize,
uintptr_t DataSizeRO,
uintptr_t DataSizeRW)
Patch by Vaidas Gasiunas. Thanks very much Viadas!
llvm-svn: 201259
|
|
|
|
| |
llvm-svn: 201258
|
|
|
|
| |
llvm-svn: 201257
|
|
|
|
|
|
| |
This avoids linking in extra copies of, say, LLVMSupport.
llvm-svn: 201256
|
|
|
|
| |
llvm-svn: 201255
|
|
|
|
|
|
|
|
| |
Allowing alignment past this point causes wrap around within clang.
N.B. GCC has the same restriction.
llvm-svn: 201254
|
|
|
|
|
|
| |
rdar://problem/16015314
llvm-svn: 201253
|
|
|
|
|
|
| |
Also, fix incorrect syscall hooks for the corresponding syscalls.
llvm-svn: 201252
|
|
|
|
| |
llvm-svn: 201251
|
|
|
|
| |
llvm-svn: 201250
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit improves libclang to report the error condition when
CXTranslationUnit can not be created because of a stale PCH file. This allows
the caller, for example, to rebuild the PCH file and retry the request.
There two are APIs in libclang that return a CXTranslationUnit and don't
support reporting detailed errors (the only error condition is a NULL result).
For these APIs, a second, superior, version is introduced --
clang_createTranslationUnit2 and clang_parseTranslationUnit2. These functions
return a CXTranslationUnit indirectly and also return an error code. Old
functions are still supported and are nothing more than convenience wrappers
that ignore extended error codes.
As a cleanup, this commit also categorizes some libclang errors in the
functions I had to modify anyway.
llvm-svn: 201249
|
|
|
|
|
|
| |
information provided in the referenced radar.
llvm-svn: 201248
|
|
|
|
|
|
|
|
| |
This reverts commit r201183.
The test, albeit undocumented and badly written is still testing something
useful. It will be updated in a subsequent commit.
llvm-svn: 201247
|
|
|
|
| |
llvm-svn: 201246
|
|
|
|
|
|
|
|
| |
preserve branch probability information.
<rdar://problem/15893208>
llvm-svn: 201245
|
|
|
|
|
|
|
| |
See http://llvm.org/bugs/show_bug.cgi?id=18816.
Likely the same issue as http://llvm.org/bugs/show_bug.cgi?id=18805.
llvm-svn: 201244
|
|
|
|
| |
llvm-svn: 201243
|
|
|
|
|
|
| |
BreakpointPrinter moves to its own module.
llvm-svn: 201242
|
|
|
|
|
|
|
|
| |
AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call
It introduced multiple test failures in the buildbots.
llvm-svn: 201241
|
|
|
|
| |
llvm-svn: 201240
|
|
|
|
|
|
|
|
|
| |
This reverts commit r200413.
This was breaking the build on systems where the python 2.x executable
was called python.
llvm-svn: 201239
|
|
|
|
|
|
| |
been in r201237.
llvm-svn: 201238
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
hasRawTextSupport() call
Summary:
AsmPrinter::EmitInlineAsm() will no longer use the EmitRawText() call for targets with mature MC support. Such targets will always parse the inline assembly (even when emitting assembly). Targets without mature MC support continue to use EmitRawText() for assembly output.
The hasRawTextSupport() check in AsmPrinter::EmitInlineAsm() has been replaced with MCAsmInfo::UseIntegratedAs which when true, causes the integrated assembler to parse inline assembly (even when emitting assembly output). UseIntegratedAs is set to true for targets that consider any failure to parse valid assembly to be a bug. Target specific subclasses generally enable the integrated assembler in their constructor. The default value can be overridden with -no-integrated-as.
All tests that rely on inline assembly supporting invalid assembly (for example, those that use mnemonics such as 'foo' or 'hello world') have been updated to disable the integrated assembler.
Reviewers: rafael
Reviewed By: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2686
llvm-svn: 201237
|