| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 201140
|
| |
|
|
|
|
|
| |
E.g.:
Foo([]()->std::vector<int> { return { 2 }; }());
llvm-svn: 201139
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
auto result = SomeObject
// Calling someFunction on SomeObject
.someFunction();
After:
auto result = SomeObject
// Calling someFunction on SomeObject
.someFunction();
llvm-svn: 201138
|
| |
|
|
|
|
|
|
|
|
| |
According to the AAPCS, we can split structs between GPRs and the stack,
except for when an argument has already been allocated on the stack. This
can occur when a large number of floating-point arguments fill up the VFP
registers, and are alllocated on the stack before the general-purpose argument
registers are full.
llvm-svn: 201137
|
| |
|
|
|
|
| |
only current user should be using toEpochTime() instead.
llvm-svn: 201136
|
| |
|
|
| |
llvm-svn: 201135
|
| |
|
|
|
|
| |
fixed encoding of VEXTRACTPS instruction.
llvm-svn: 201134
|
| |
|
|
|
|
| |
line by line.
llvm-svn: 201133
|
| |
|
|
|
|
|
|
|
| |
profitability check due to some other checks in the addressing
mode matcher. I.e., test case for commit r201121.
<rdar://problem/16020230>
llvm-svn: 201132
|
| |
|
|
|
|
| |
'if' one.
llvm-svn: 201131
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
extern.
This triggered a miscompilation of code using Boost's function_template.hpp
when it was included inside a PCH file. A local static within
that header would be treated as local extern, resulting in the wrong
mangling. This only occurred during PCH deserialization.
Fixes <rdar://problem/15975816> and <rdar://problem/15926311>.
llvm-svn: 201130
|
| |
|
|
| |
llvm-svn: 201129
|
| |
|
|
| |
llvm-svn: 201128
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
uintptr_t. An unsigned could overflow for large sections.
No test case - anything big enough to overflow an unsigned is going to take an
appreciable time to zero when the test passes.
The choice of uintptr_t was made to match the RTDyldMemoryManager APIs, but
these should probably be hardcoded to uint64_ts: It is legitimate to JIT for
64-bit targets from a 32-bit host/compiler.
llvm-svn: 201127
|
| |
|
|
|
|
| |
IntrReadArgMem as they access only memory based on argument. Patch by Robert Khasanov.
llvm-svn: 201126
|
| |
|
|
| |
llvm-svn: 201125
|
| |
|
|
|
|
| |
rand_s() since MinGW does not have an implementation for it, but instead using the underlying CryptGenRandom APIs.
llvm-svn: 201124
|
| |
|
|
|
|
|
|
|
| |
This will let us stage in the modeling of operator new. The -analyzer-config
opton 'c++-inline-allocators' is currently off by default.
Patch by Karthik Bhat!
llvm-svn: 201122
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The addressing mode matcher checks at some point the profitability of folding an
instruction into the addressing mode. When the instruction to be folded has
several uses, it checks that the instruction can be folded in each use.
To do so, it creates a new matcher for each use and check if the instruction is
in the list of the matched instructions of this new matcher.
The new matchers may promote some instructions and this has to be undone to keep
the state of the original matcher consistent.
A test case will follow.
<rdar://problem/16020230>
llvm-svn: 201121
|
| |
|
|
|
|
|
|
|
|
| |
This option has the following effects:
* It adds the sspstrong IR attribute to each function within the CU.
* It defines the macro __SSP_STRONG__ with the value of 2.
Differential Revision: http://llvm-reviews.chandlerc.com/D2717
llvm-svn: 201120
|
| |
|
|
| |
llvm-svn: 201119
|
| |
|
|
|
|
| |
instead of on the stack. Handles larger packet read requests better.
llvm-svn: 201118
|
| |
|
|
|
|
|
|
| |
use a system-wide unique thread ID instead of a pthread_t to identify
the thread we want debug info for. Also, free some more memory regions
that needed to be freed.
llvm-svn: 201117
|
| |
|
|
|
|
|
|
|
|
| |
These are self-contained in functionality so it makes sense to separate them,
as opt.cpp has grown quite big already.
Following Eric's suggestions, if this code is ever deemed useful outside of
tools/opt, it will make sense to move it to one of the LLVM libraries like IR.
llvm-svn: 201116
|
| |
|
|
| |
llvm-svn: 201115
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This function adds an extra path argument to lto_module_create_from_memory.
The path argument will be passed to makeBuffer to make sure the MemoryBuffer
has a name and the created module has a module identifier.
This is mainly for emitting warning messages from the linker. When we emit
warning message on a module, we can use the module identifier.
rdar://15985737
llvm-svn: 201114
|
| |
|
|
|
|
|
|
|
| |
A const ObjectFile needs to be able to provide its name. For an IRObjectFile,
that means being able to call the mangler. Since each IRObjectFile can have
a different mangling, it is natural for them to contain a Mangler which is
therefore also const.
llvm-svn: 201113
|
| |
|
|
|
|
|
|
| |
Replaced cast and vreinterepret operations with
code to reinterpret bitwise the types float16_t and
int16_t.
llvm-svn: 201112
|
| |
|
|
|
|
| |
Patch by Brad King!
llvm-svn: 201111
|
| |
|
|
| |
llvm-svn: 201110
|
| |
|
|
| |
llvm-svn: 201109
|
| |
|
|
| |
llvm-svn: 201108
|
| |
|
|
|
|
|
| |
Truncation is just accessing a subregister for any multiple of
the register size, so it's free.
llvm-svn: 201107
|
| |
|
|
|
|
| |
issue list.
llvm-svn: 201106
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a notion of a 'current representation method' for
pointers-to-members.
When starting out, this is set to 'best case' (representation method is
chosen by examining the class, selecting the smallest representation
that would work given the class definition or lack thereof).
This pragma allows the translation unit to dictate exactly what
representation to use, similar to how the inheritance model keywords
operate.
N.B. PCH support is forthcoming.
Differential Revision: http://llvm-reviews.chandlerc.com/D2723
llvm-svn: 201105
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The crux of the issue is that LCSSA doesn't preserve stateful alias
analyses. Before r200067, LICM didn't cause LCSSA to run in the LTO pass
manager, where LICM runs essentially without any of the other loop
passes. As a consequence the globalmodref-aa pass run before that loop
pass manager was able to survive the loop pass manager and be used by
DSE to eliminate stores in the function called from the loop body in
Adobe-C++/loop_unroll (and similar patterns in other benchmarks).
When LICM was taught to preserve LCSSA it had to require it as well.
This caused it to be run in the loop pass manager and because it did not
preserve AA, the stateful AA was lost. Most of LLVM's AA isn't stateful
and so this didn't manifest in most cases. Also, in most cases LCSSA was
already running, and so there was no interesting change.
The real kicker is that LCSSA by its definition (injecting PHI nodes
only) trivially preserves AA! All we need to do is mark it, and then
everything goes back to working as intended. It probably was blocking
some other weird cases of stateful AA but the only one I have is
a 1000-line IR test case from loop_unroll, so I don't really have a good
test case here.
Hopefully this fixes the regressions on performance that have been seen
since that revision.
llvm-svn: 201104
|
| |
|
|
|
|
|
| |
Made sure we pass along the file action paths for stdin/stdout/stderr to the XPC service.
[Reviewed by Greg Clayton]
llvm-svn: 201103
|
| |
|
|
|
|
|
| |
Create a new diagnostic, -Wignored-pragmas and use it to handle any
case where a pragma would have a side effect but is ignored.
llvm-svn: 201102
|
| |
|
|
|
|
| |
function pointers with ref qualifiers. Also a drive-by fix for common_type in C++03 mode. Thanks to Michel Morin for the bug report and the proposed fix.
llvm-svn: 201101
|
| |
|
|
| |
llvm-svn: 201100
|
| |
|
|
|
|
| |
No functional change, this code was just superfluous.
llvm-svn: 201099
|
| |
|
|
|
|
| |
This fixes the oversight from r159077.
llvm-svn: 201098
|
| |
|
|
|
|
|
|
|
|
|
| |
DS instructions that access local memory can only uses addresses that
are less than or equal to the value of M0. When M0 is uninitialized,
then we experience undefined behavior.
This patch also changes the behavior to emit S_WQM_B64 on pixel shaders
no matter what kind of DS instruction is used.
llvm-svn: 201097
|
| |
|
|
|
|
|
|
| |
This doesn't change any functionality, since we only have two shader
types (compute and pixel) that use local memory. We're just changing
the logic to match the documentation.
llvm-svn: 201096
|
| |
|
|
|
|
| |
Thanks to Chandler for the catch.
llvm-svn: 201095
|
| |
|
|
|
|
|
| |
Now that both ARM backends use the same implementation for vshll operations,
the code can be shared. This is also a necessary LLVM/Clang interface update.
llvm-svn: 201094
|
| |
|
|
|
|
|
|
| |
Similarly to the vshrn instructions, these are simple zext/sext + trunc
operations. Using normal LLVM IR should allow for better code, and more sharing
with the AArch64 backend.
llvm-svn: 201093
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Although the interface to el_push should be a constant parameter (as it is on
Darwin), certain Linux distributions currently ship a header which does not
provide proper const correctness. This causes compilation failures on Linux.
Strip the constness on the parameter, which whilst incorrect, is mostly
harmless. The parameter will not be changed by the interface and so it is
acceptable to do this. When distributions have updated to a more correct
declaration, it would be nice to revert this change.
Addresses PR18784.
llvm-svn: 201092
|
| |
|
|
| |
llvm-svn: 201091
|
| |
|
|
|
|
|
| |
For A- and R-class processors, r12 is not normally callee-saved, but is for
interrupt handlers. See AAPCS, 5.3.1.1, "Use of IP by the linker".
llvm-svn: 201089
|