- Mar 04, 2013
-
-
Jia Liu authored
llvm-svn: 176426
-
- Mar 03, 2013
-
-
Shankar Easwaran authored
llvm-svn: 176425
-
Shankar Easwaran authored
llvm-svn: 176424
-
Dmitri Gribenko authored
Idea by Marshall Clow. llvm-svn: 176423
-
David Chisnall authored
llvm-svn: 176422
-
Sean Silva authored
llvm-svn: 176421
-
David Chisnall authored
- Generate atomicrmw operations in most of the cases when it's sensible to do so. - Don't crash in several common cases (and hopefully don't crash in more of them). - Add some better tests. We now generate significantly better code for things like: _Atomic(int) x; ... x++; On MIPS, this now generates a 4-instruction ll/sc loop, where previously it generated about 30 instructions in two nested loops. On x86-64, we generate a single lock incl, instead of a lock cmpxchgl loop (one instruction instead of ten). llvm-svn: 176420
-
David Chisnall authored
llvm-svn: 176419
-
Sean Silva authored
llvm-svn: 176418
-
Sean Silva authored
That is where the documentation gets built to. I'm pretty much clueless about SVN; I would appreciate if someone more knowledgeable about SVN made the equivalent change. llvm-svn: 176417
-
Shankar Easwaran authored
llvm-svn: 176416
-
Shankar Easwaran authored
llvm-svn: 176415
-
- Mar 02, 2013
-
-
Rafael Espindola authored
we are looking at. llvm-svn: 176414
-
Jim Grosbach authored
The VDUP instruction source register doesn't allow a non-constant lane index, so make sure we don't construct a ARM::VDUPLANE node asking it to do so. rdar://13328063 http://llvm.org/bugs/show_bug.cgi?id=13963 llvm-svn: 176413
-
Jim Grosbach authored
llvm-svn: 176412
-
Jim Grosbach authored
llvm-svn: 176411
-
Arnold Schwaighofer authored
Mark them as expand, they are not legal as our backend does not match them. llvm-svn: 176410
-
Benjamin Kramer authored
llvm-svn: 176409
-
Nuno Lopes authored
This adds minimalistic support for PHI nodes to llvm.objectsize() evaluation fingers crossed so that it does break clang boostrap again.. llvm-svn: 176408
-
Nuno Lopes authored
this is similar to getObjectSize(), but doesnt subtract the offset tweak the BasicAA code accordingly (per PR14988) llvm-svn: 176407
-
Benjamin Kramer authored
llvm-svn: 176406
-
Jason Molenda authored
in a core file if it didn't start at the beginning of a memory segment. I added more sophisticated kernel location code to DynamicLoaderDarwinKernel and removed the simple one in ProcessMachCore. Unfortunately the kernel DynamicLoader doesn't get a chance to search around in memory unless there's a hint that this might be a kernel debug session. It was easy ot make the kernel location code static in DynamicLoaderDarwinKernel and call it from ProcessMachCore on the start of the session, so that's what I did. <rdar://problem/13326647> llvm-svn: 176405
-
Peter Collingbourne authored
Differential Revision: http://llvm-reviews.chandlerc.com/D482 llvm-svn: 176404
-
Arnold Schwaighofer authored
This matters for example in following matrix multiply: int **mmult(int rows, int cols, int **m1, int **m2, int **m3) { int i, j, k, val; for (i=0; i<rows; i++) { for (j=0; j<cols; j++) { val = 0; for (k=0; k<cols; k++) { val += m1[i][k] * m2[k][j]; } m3[i][j] = val; } } return(m3); } Taken from the test-suite benchmark Shootout. We estimate the cost of the multiply to be 2 while we generate 9 instructions for it and end up being quite a bit slower than the scalar version (48% on my machine). Also, properly differentiate between avx1 and avx2. On avx-1 we still split the vector into 2 128bits and handle the subvector muls like above with 9 instructions. Only on avx-2 will we have a cost of 9 for v4i64. I changed the test case in test/Transforms/LoopVectorize/X86/avx1.ll to use an add instead of a mul because with a mul we now no longer vectorize. I did verify that the mul would be indeed more expensive when vectorized with 3 kernels: for (i ...) r += a[i] * 3; for (i ...) m1[i] = m1[i] * 3; // This matches the test case in avx1.ll and a matrix multiply. In each case the vectorized version was considerably slower. radar://13304919 llvm-svn: 176403
-
Anna Zaks authored
Inlining brought a few "null pointer use" false positives, which occur because the callee defensively checks if a pointer is NULL, whereas the caller knows that the pointer cannot be NULL in the context of the given call. This is a first attempt to silence these warnings by tracking the symbolic value along the execution path in the BugReporter. The new visitor finds the node in which the symbol was first constrained to NULL. If the node belongs to a function on the active stack, the warning is reported, otherwise, it is suppressed. There are several areas for follow up work, for example: - How do we differentiate the cases where the first check is followed by another one, which does happen on the active stack? Also, this only silences a fraction of null pointer use warnings. For example, it does not do anything for the cases where NULL was assigned inside a callee. llvm-svn: 176402
-
Fariborz Jahanian authored
command source fidelity. // rdar://13066276 llvm-svn: 176401
-
Andrew Trick authored
llvm-svn: 176400
-
Nadav Rotem authored
The LoopVectorizer often runs multiple times on the same function due to inlining. When this happens the loop vectorizer often vectorizes the same loops multiple times, increasing code size and adding unneeded branches. With this patch, the vectorizer during vectorization puts metadata on scalar loops and marks them as 'already vectorized' so that it knows to ignore them when it sees them a second time. PR14448. llvm-svn: 176399
-
Peter Collingbourne authored
llvm-svn: 176398
-
Peter Collingbourne authored
llvm-svn: 176397
-
Jordan Rose authored
Previously we relied on it being included by config-ix.cmake. llvm-svn: 176396
-
Michael Gottesman authored
This reverts commit aac7922b8fe7ae733d3fe6697e6789fd730315dc. I am reverting the commit since it broke the phase 1 public buildbot for a few hours. http://lab.llvm.org:8013/builders/clang-x86_64-darwin11-nobootstrap-RA/builds/2137 llvm-svn: 176394
-
Jordan Rose authored
In LLVM, -pedantic is not set unless LLVM_ENABLE_PEDANTIC is set. However, Clang's CMakeLists.txt unilaterally adds -pedantic to the run line, so we need to disable -Wnested-anon-types explicitly. llvm-svn: 176393
-
Jim Ingham authored
Calculate "can branch" using the MC API's rather than our hand-rolled regex'es. As extra credit, allow setting the disassembly flavor for x86 based architectures to intel or att. <rdar://problem/11319574> <rdar://problem/9329275> llvm-svn: 176392
-
Eli Bendersky authored
llvm-svn: 176391
-
Andrew Trick authored
Fix the way resources are counted. I'm taking some time to cleanup the way MachineScheduler handles in-order machine resources. Eventually we'll need more PPC/Atom test cases in tree. llvm-svn: 176390
-
Jordan Rose authored
See http://clang-analyzer.llvm.org/release_notes.html for what's new in this build. llvm-svn: 176389
-
Jordan Rose authored
Previously we were assuming that we'd never ask for the sub-region bindings of a bitfield, since a bitfield cannot have subregions. However, unification of code paths has made that assumption invalid. While we could take advantage of this by just checking for the single possible binding, it's probably better to do the right thing, so that if/when we someday support unions we'll do the right thing there, too. This fixes a handful of false positives in analyzing LLVM. <rdar://problem/13325522> llvm-svn: 176388
-
- Mar 01, 2013
-
-
Fariborz Jahanian authored
in AST for source fidelity and use it in diagnostics to refer to the original format. // rdar://13066276 llvm-svn: 176387
-
Argyrios Kyrtzidis authored
The sys::fs::is_directory() check is unnecessary because, if the filename is a directory, the function will fail anyway with the same error code returned. Remove the check to avoid an unnecessary stat call. Someone needs to review on windows and see if the check is necessary there or not. llvm-svn: 176386
-