Commit Graph

172072 Commits

Author SHA1 Message Date
Craig Topper ada0857679 [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr.
llvm-svn: 206356
2014-04-16 04:21:27 +00:00
Saleem Abdulrasool a2bf05aa2f COFF: add support for .file symbols
Add support for emitting .file records.  This is mostly a quality of
implementation change (more complete support for COFF file emission) that was
noticed while working on COFF file emission for Windows on ARM.

A .file record is emitted as a symbol with storage class FILE (103) and the name
".file".  A series of auxiliary format 4 records follow which contain the file
name.  The filename is stored as an ANSI string and is padded with NULL if the
length is not a multiple of COFF::SymbolSize (18).

llvm-svn: 206355
2014-04-16 04:15:32 +00:00
Saleem Abdulrasool 3b5e00130e tools: fix invalid printing, buffer overrun in llvm-readobj
All auxiliary records are consumed when accessing a File record.

llvm-svn: 206354
2014-04-16 04:15:29 +00:00
Saleem Abdulrasool 0d3d6c45ef Target: whitespace
llvm-svn: 206353
2014-04-16 04:15:25 +00:00
Justin Bogner 4e3a01fa5f Lex: Fix __has_feature(cxx_exceptions) for objective C++
At one point, -fexceptions was a synonym for -fcxx-exceptions. While
the driver options still enables cxx-exceptions by default, the cc1
flag is purely about exception tables and this doesn't account for
objective C exceptions. Because of this, checking for the
cxx_exceptions feature in objective C++ often gives the wrong answer.

The cxx_exceptions feature should be based on the -fcxx-exceptions cc1
flag, not -fexceptions. Furthermore, at some point the tests were
changed to use cc1 even though they were testing the driver behaviour.
We're better off testing both the driver and cc1 here.

llvm-svn: 206352
2014-04-16 02:56:48 +00:00
Jim Ingham fe1c34266f Clean up the logic in setting timeouts a bit, and the logging as well.
llvm-svn: 206351
2014-04-16 02:24:48 +00:00
Jim Ingham b8cd5750b4 m_interrupt_sent wasn't being initialized, and wasn't being reset after an
interrupt.  Do both of those.

llvm-svn: 206350
2014-04-16 02:24:17 +00:00
Matt Arsenault 4ef2588b65 R600: Extend r600 sign_extend_inreg tests for EG
Patch by: Jan Vesely <jan.vesely@rutgers.edu>

llvm-svn: 206349
2014-04-16 01:41:34 +00:00
Matt Arsenault 4e46665a80 R600: Expand sign extension of vectors.
Setting vector types to expand will result in scalarization on pre SI hw,
as those gpus don't have vector shifts either.
Expand also i32 vectors, this helps llvm make the correct decision
about scalarizing the vector ops.

v2: move setOperation() calls to R600ISelLowering.cpp.
    cleanup the SI code to make it obvious that this patch does is nop for SI

Patch by: Jan Vesely <jan.vesely@rutgers.edu>

llvm-svn: 206348
2014-04-16 01:41:30 +00:00
NAKAMURA Takumi e9c88759a2 threadSafety::SExprBuilder::BlockInfo: Non-static member initializer is unavailable. Use default constructor instead.
llvm-svn: 206347
2014-04-16 01:22:22 +00:00
NAKAMURA Takumi ac5e64fbbe Reformat.
llvm-svn: 206346
2014-04-16 01:22:07 +00:00
NAKAMURA Takumi a14deb4a8b threadSafety::CopyOnWriteVector: Use LLVM_DELETED_FUNCTION here due to missing functionality of msc17.
llvm-svn: 206345
2014-04-16 01:21:53 +00:00
Jim Grosbach 36c6a50512 [ARM64,C++11] Tidy up branch relaxation a bit w/ c++11.
No functional change.

llvm-svn: 206344
2014-04-16 00:42:46 +00:00
Jim Grosbach 01fc5887ad ARM64: Nuke some dead code.
Missed in previous commit.

llvm-svn: 206343
2014-04-16 00:42:43 +00:00
John Thompson 28331ae67e Fixed problem with exclude header. The exclude header argument needs to be relative to the module.map file.
llvm-svn: 206342
2014-04-16 00:07:06 +00:00
Duncan P. N. Exon Smith 2f75076de1 Fix build after r206338
llvm-svn: 206341
2014-04-15 23:58:06 +00:00
Richard Trieu beffb833dc Make -Wabsolute-value C++-aware.
Warn on std::abs() with unsigned argument.
Suggest std::abs as replacement for the C absolute value functions.
Suggest C++ headers if the specific std::abs overload is not found.

llvm-svn: 206340
2014-04-15 23:47:53 +00:00
NAKAMURA Takumi 2205952150 Format.cpp: Don't use initializer list.
llvm-svn: 206339
2014-04-15 23:29:04 +00:00
DeLesley Hutchins aab9aff058 Thread Safety Analysis: rewrite SSA pass to use the new SExpr and CFG
traversal system.  The new pass is still undergoing testing; no change in
functionality.

llvm-svn: 206338
2014-04-15 23:23:19 +00:00
Jim Grosbach 80633094f8 [ARM64,C++11] Clean up the ARM64 LOH collection pass.
Range'ify a bunch of loops, mainly. As a result, we have a variety
of objects via reference rather than by pointer, so propogate that
through the various helper functions where it makes sense.

llvm-svn: 206337
2014-04-15 22:57:02 +00:00
Matt Arsenault e500e32939 R600/SI: Print code size along with used registers
llvm-svn: 206336
2014-04-15 22:40:47 +00:00
Matt Arsenault 4d7d38333b R600/SI: Print more immediates in hex format
Print in decimal for inline immediates, and hex otherwise. Use hex
always for offsets in addressing offsets.

This approximately matches what the shader compiler does.

llvm-svn: 206335
2014-04-15 22:32:49 +00:00
Matt Arsenault fcf86c5417 R600/SI: Cleanup parsing of register names.
Try to figure out the class and number of subregisters.

llvm-svn: 206334
2014-04-15 22:32:42 +00:00
Tobias Grosser e6c9c85bc8 Fix formatting
llvm-svn: 206333
2014-04-15 22:30:10 +00:00
Tobias Grosser 75b76729ab Fix for vector codegen in OpenMP subfunctions
Contributed-by: Johannes Doerfert <doerfert@cs.uni-saarland.de>
llvm-svn: 206332
2014-04-15 22:30:06 +00:00
Nick Lewycky 43855af9a7 Make this test not match its own filename, when being run from a path that includes the string 'add'.
llvm-svn: 206331
2014-04-15 22:29:32 +00:00
Matt Arsenault 470acd81a8 R600/SI: Fix loads of i1
llvm-svn: 206330
2014-04-15 22:28:39 +00:00
Tobias Grosser c787b12d04 Avoid -Wunused-const-variable warning
llvm-svn: 206329
2014-04-15 22:18:37 +00:00
Tobias Grosser 8d941ef30d RegionInfo: Do not access a value that was just moved away
This fixes a regression introduced in r206310.

llvm-svn: 206328
2014-04-15 22:09:36 +00:00
Chandler Carruth a073f253f3 [Allocator] Fold the two templated overloads into a single one with
a default argument. The allocator interface we're modeling doesn't
distinguish between array and non-array allocation.

llvm-svn: 206327
2014-04-15 21:51:14 +00:00
Chandler Carruth 1fc97224af Fix more build errors in Polly after r206310. David caught one of these
in r206312, but others don't seem to show up on build bots? Unsure of
why, they showed up for me.

llvm-svn: 206326
2014-04-15 21:48:34 +00:00
Chandler Carruth 9c2a3958f0 [Allocator] Remove a really problematic overload. This is very confusing
because there is another (size_t, size_t) overload of Allocator, and the
only distinguishing factor is that one is a tempalte and the other
isn't. There was only one usage of this and that one was easily
converted to carry the alignment constraint in the type itself.

llvm-svn: 206325
2014-04-15 21:36:02 +00:00
Chandler Carruth 47c480875b [Allocator] Make the ContentCache object actually carry the 8-byte
alignment constraint rather than using the allocator function's over
alignment "feature". This was the only use of the "feature" which I plan
to remove next. =] Attaching the alignment to the type seems cleaner and
more principled anyways.

llvm-svn: 206324
2014-04-15 21:34:12 +00:00
Akira Hatanaka 3d90f99d1a Make FastISel::SelectInstruction return before target specific fast-isel code
handles Intrinsic::trap if TargetOptions::TrapFuncName is set.

This fixes a bug in which the trap function was not taken into consideration
when a program was compiled without optimization (at -O0).

<rdar://problem/16291933>

llvm-svn: 206323
2014-04-15 21:30:06 +00:00
Justin Bogner e2ef2a09ef CodeGen: Emit warnings for out of date profile data during PGO
This adds a warning that triggers when profile data doesn't match for
the source that's being compiled with -fprofile-instr-use=. This fires
only once per translation unit, as warning on every mismatched
function would be quite noisy.

llvm-svn: 206322
2014-04-15 21:22:35 +00:00
Justin Bogner 3f0c79ce8d CodeGen: Remove a comment that isn't in the right place
This comment also appears elsewhere where it actually makes sense, and
it's just confusing here.

llvm-svn: 206321
2014-04-15 20:37:41 +00:00
Richard Smith 93da092f10 Move comment back to being next to the thing it's describing.
llvm-svn: 206320
2014-04-15 20:27:15 +00:00
Ed Maste 9b8d847b8f Add FreeBSD-specific SIGTHR and SIGLIBRT signals
llvm-svn: 206319
2014-04-15 20:22:32 +00:00
Tobias Grosser 364c136d08 Dependences: Do not fail in case a schedule eliminates all dependences
The following example shows a non-parallel loop

void f(int a[]) {
  int i;
  for (i = 0; i < 10; ++i)
    A[i] = A[i+5];
}

which, in case we import a schedule that limits the iteration domain
to 0 <= i < 5, becomes parallel. Previously we crashed in such cases, now we
just recognize it as parallel.

This fixes http://llvm.org/PR19435

Reported-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
llvm-svn: 206318
2014-04-15 20:14:57 +00:00
Justin Bogner 399093276c AST: Respect alignment attributes on typedef'd arrays
When instantiating an array that has an alignment attribute on it, we
were looking through the array type and only considering the element
type for the resulting alignment. We need to make sure we take the
array's requirements into account too.

llvm-svn: 206317
2014-04-15 20:12:41 +00:00
Andrea Di Biagio aac2eac4c2 [X86] Improve the lowering of packed shifts by constant build_vector.
This patch teaches the backend how to efficiently lower logical and
arithmetic packed shifts on both SSE and AVX/AVX2 machines.

When possible, instead of scalarizing a vector shift, the backend should try
to expand the shift into a sequence of two packed shifts by immedate count
followed by a MOVSS/MOVSD.

Example
  (v4i32 (srl A, (build_vector < X, Y, Y, Y>)))

Can be rewritten as:
  (v4i32 (MOVSS (srl A, <Y,Y,Y,Y>), (srl A, <X,X,X,X>)))

[with X and Y ConstantInt]

The advantage is that the two new shifts from the example would be lowered into
X86ISD::VSRLI nodes. This is always cheaper than scalarizing the vector into
four scalar shifts plus four pairs of vector insert/extract.

llvm-svn: 206316
2014-04-15 19:30:48 +00:00
Quentin Colombet 9d8105130a [ARM64] Update tests to reflect the change of the default CPU in llvm.
llvm-svn: 206314
2014-04-15 19:09:58 +00:00
Quentin Colombet 72dad56c53 [ARM64] Set default CPU to generic instead of cyclone.
llvm-svn: 206313
2014-04-15 19:08:46 +00:00
David Blaikie b035f6d878 Blind fix Polly for r206310
llvm-svn: 206312
2014-04-15 18:45:27 +00:00
Robert Lougher a9bf2463b9 Revert r191049/r191059 as it can produce wrong code (see PR17975).
It has already been reverted on the 3.4 branch in r196521.

llvm-svn: 206311
2014-04-15 18:34:24 +00:00
David Blaikie ec649acb82 Use unique_ptr to manage ownership of child Regions within llvm::Region
llvm-svn: 206310
2014-04-15 18:32:43 +00:00
Ben Langmuir 8832c066a2 Honour -ivfsoverlay in ASTUnit to match clang
This allows code indexing, etc. to use the VFS in the same way as the
compiler.

llvm-svn: 206309
2014-04-15 18:16:25 +00:00
Julien Lerouge be4fe32eb8 Add lifetime markers for allocas created to hold byval arguments, make them
appear in the InlineFunctionInfo.

llvm-svn: 206308
2014-04-15 18:06:46 +00:00
Julien Lerouge 957e91c4d8 Split byval argument initialization so the memcpy(s) are injected at the
beginning of the first new block after inlining.

llvm-svn: 206307
2014-04-15 18:01:54 +00:00
Duncan P. N. Exon Smith 2b69189c9c LTO: Add more loop simplification passes to LTO
Similar to r202051, add missing loop simplification passes to the LTO
optimization pipeline.

Patch by Rafael Espindola.

llvm-svn: 206306
2014-04-15 17:48:15 +00:00