- May 20, 2016
-
-
Haojian Wu authored
Reviewers: bkramer Subscribers: cfe-commits, ioeric Differential Revision: http://reviews.llvm.org/D20420 llvm-svn: 270189
-
Daniel Jasper authored
Otherwise, clang-format can get confused with statements like: x.for = 1; llvm-svn: 270188
-
Sean Silva authored
I think we allow use of C99 for libprofile, but use a C-style comment for consistency. llvm-svn: 270187
-
Xinliang David Li authored
llvm-svn: 270186
-
Xinliang David Li authored
1) Move common prefix to the macro def 2) Introduced PROF_WARN 3) Make error message unconditionally printed out. llvm-svn: 270185
-
Saleem Abdulrasool authored
Move the enumeration back to avoid the layering violation. Should repair the modules build. llvm-svn: 270184
-
Craig Topper authored
[X86] Run the AVX/AVX2 intrinsic tests in AVX512VL mode too just to make sure we don't break any older intrinsics. llvm-svn: 270183
-
Craig Topper authored
llvm-svn: 270182
-
Xinliang David Li authored
llvm-svn: 270181
-
Saleem Abdulrasool authored
Add a const_cast rather than the C-style cast. NFC. llvm-svn: 270180
-
Sean Silva authored
llvm-svn: 270179
-
Saleem Abdulrasool authored
Move the ExceptionHandling enumeration into TargetOptions and introduce a field to track the desired exception model. This will allow us to set the exception model from the frontend (needed to optionally use SjLj EH on other targets where zero-cost is available and preferred). llvm-svn: 270178
-
Sean Silva authored
llvm-svn: 270177
-
Jacques Pienaar authored
Follow r269988 and use Optional<Reloc>. llvm-svn: 270176
-
Craig Topper authored
llvm-svn: 270175
-
Craig Topper authored
[X86] Fix some AVX patterns to only be disabled if VLX and BWI are supported. Without this we get isel failures on the avx-intrinsics-x86.ll test in AVX512VL. llvm-svn: 270174
-
Dan Liew authored
On Linux ``rusage.ru_maxrss`` is in KiB but on Mac OSX it is in bytes. Differential Revision: http://reviews.llvm.org/D20410 llvm-svn: 270173
-
Dan Liew authored
The ``nprocs`` command does not exist under Mac OSX so use ``sysctl`` instead on that platform. Whilst I'm here * Use ``pclose()`` instead of ``fclose()`` which the ``popen()`` documentation says should be used. * Check for errors that were previously unhandled. Differential Revision: http://reviews.llvm.org/D20409 llvm-svn: 270172
-
Dylan McKay authored
Reviewed by Matt Arsenault in http://reviews.llvm.org/D16311 llvm-svn: 270171
-
Richard Smith authored
llvm-svn: 270170
-
Richard Smith authored
appropriate changes. llvm-svn: 270169
-
Quentin Colombet authored
an instruction. Use the previously introduced RepairingPlacement class to split the code computing the repairing placement from the code doing the actual placement. That way, we will be able to consider different placement and then, only apply the best one. llvm-svn: 270168
-
Quentin Colombet authored
When assigning the register banks we may have to insert repairing code to move already assigned values accross register banks. Introduce a few helper classes to keep track of what is involved in the repairing of an operand: - InsertPoint and its derived classes record the positions, in the CFG, where repairing has to be inserted. - RepairingPlacement holds all the insert points for the repairing of an operand plus the kind of action that is required to do the repairing. This is going to be used to keep track of how the repairing should be done, while comparing different solutions for an instruction. Indeed, we will need the repairing placement to capture the cost of a solution and we do not want to compute it a second time when we do the actual repairing. llvm-svn: 270167
-
Quentin Colombet authored
register bank twice. Prior to this change, we were checking if the assignment for the current machine operand was matching, then we would check if the mismatch requires to insert repair code. We actually already have this information from the first check, so just pass it along. NFCI. llvm-svn: 270166
-
Rafael Espindola authored
Sorry for the lack testcase. There is one in the pr, but it depends on std::sort and the .ll version is 110 lines, so I don't think it is wort it. The bug was that we were sorting after adding a terminator, and the sorting algorithm could end up putting the terminator in the middle of the List vector. With that we would create a Spans map entry keyed on nullptr which would then be added to CUs and fail in that sorting. llvm-svn: 270165
-
Reid Kleckner authored
Some people have weird CI systems that run each test subdirectory independently without access to other parallel trees. Unfortunately, this means we have to suffer some duplication until Art can sort out how to share these types. llvm-svn: 270164
-
Quentin Colombet authored
This helper class will be used to represent the cost of mapping an instruction to a specific register bank. The particularity of these costs is that they are mostly local, thus the frequency of the basic block is irrelevant. However, for few instructions (e.g., phis and terminators), the cost may be non-local and then, we need to account for the frequency of the involved basic blocks. This will be used by the greedy mode I am working on. llvm-svn: 270163
-
Jason Molenda authored
values for the pc or return address register. On ios with arm64 and a binary that has multiple functions without individual symbol boundaries, we end up with an assembly profile unwind plan that says lr=<same> - that is, the link register contents are unmodified from the caller's value. This gets the unwinder in a loop. When we're off the 0th frame, we never want to look to a caller for a pc or return-address register value. Add checks to ReadGPRValue and ReadRegister to prevent both the pc and ra register values from recursing. If this causes problems with backtraces on android, let me know or back it out and I'll look into it -- but I think these are straightforward and don't expect problems. <rdar://problem/24610365> llvm-svn: 270162
-
Richard Smith authored
llvm-svn: 270161
-
Vedant Kumar authored
The lexer sets the end location of macro arguments incorrectly *if*, while merging consecutive args to fit into a single SLocEntry, it finds args which come from different macro files. Fix the issue by using separate SLocEntries in this situation. This fixes a code coverage crasher (rdar://problem/26181005). Because the lexer reported end locations for certain macro args incorrectly, we would generate bogus coverage mappings with negative line offsets. Reviewed-by: akyrtzi Differential Revision: http://reviews.llvm.org/D20401 llvm-svn: 270160
-
Chris Bieneman authored
This test covers strings after load command structs and zero fill bytes. llvm-svn: 270159
-
Chris Bieneman authored
Now that MachO load command fields are fully covered we can fill unaccounted for bytes with 0. That allows us to sparsely specify YAML to simplify tests. Simplifying load_commands test accordingly. llvm-svn: 270158
-
Lang Hames authored
symbols on x86-64. llvm-svn: 270157
-
Rafael Espindola authored
llvm-svn: 270156
-
Sanjoy Das authored
llvm-svn: 270155
-
Anton Yartsev authored
[analyzer] Fix for PR23790 : constrain return value of strcmp() rather than returning a concrete value. The function strcmp() can return any value, not just {-1,0,1} : "The strcmp(const char *s1, const char *s2) function returns an integer greater than, equal to, or less than zero, accordingly as the string pointed to by s1 is greater than, equal to, or less than the string pointed to by s2." [C11 7.24.4.2p3] https://llvm.org/bugs/show_bug.cgi?id=23790 http://reviews.llvm.org/D16317 llvm-svn: 270154
-
Easwaran Raman authored
Before r257832, the threshold used by SimpleInliner was explicitly specified or generated from opt levels and passed to the base class Inliner's constructor. There, it was first overridden by explicitly specified -inline-threshold. The refactoring in r257832 did not preserve this behavior for all opt levels. This change brings back the original behavior. Differential Revision: http://reviews.llvm.org/D20452 llvm-svn: 270153
-
Richard Smith authored
llvm-svn: 270152
-
Sanjoy Das authored
Sequences of range checks expressed using guards, like guard((I - 2) u< L) guard((I - 1) u< L) guard((I + 0) u< L) guard((I + 1) u< L) guard((I + 2) u< L) can sometimes be combined into a smaller sequence: guard((I - 2) u< L AND (I + 2) u< L) if we can prove that (I - 2) u< L AND (I + 2) u< L implies all of checks expressed in the previous sequence. This change teaches GuardWidening to do this kind of merging when feasible. llvm-svn: 270151
-
Justin Lebar authored
Summary: Previously it was implemented as inline asm in the CUDA headers. This change allows us to use the [addr+imm] addressing mode when executing ld.global.nc instructions. This translates into a 1.3x speedup on some benchmarks that call this instruction from within an unrolled loop. Reviewers: tra, rsmith Subscribers: jhen, cfe-commits, jholewinski Differential Revision: http://reviews.llvm.org/D19990 llvm-svn: 270150
-