summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* AMDGPU: Don't emit build_pair during udivrem legalizationMatt Arsenault2016-03-011-6/+11
| | | | | | | | Technically you aren't supposed to emit these after type legalization for some reason, and we use vector extracts of bitcasted integers as the canonical way to do this. llvm-svn: 262298
* AMDGPU: Don't use estimated stack size when we know the real stack sizeMatt Arsenault2016-03-011-1/+1
| | | | llvm-svn: 262297
* AMDGPU: Set HasExtractBitInsnMatt Arsenault2016-03-012-0/+314
| | | | | | | | | | This currently does not have the control over the bitwidth, and there are missing optimizations to reduce the integer to 32-bit if it can be. But in most situations we do want the sinking to occur. llvm-svn: 262296
* [test] After r262290 reducing stack usage, try re-enabling asan on the ↵Argyrios Kyrtzidis2016-03-011-2/+2
| | | | | | related test. llvm-svn: 262295
* [WinEH] Allocate the registration node before the catch objectsDavid Majnemer2016-03-014-1/+48
| | | | | | | | | | | | | | | | | | | | The CatchObjOffset is relative to the end of the EH registration node for 32-bit x86 WinEH targets. A special sentinel value, 0, is used to indicate that no catch object should be initialized. This means that a catch object allocated immediately before the registration node would be assigned a CatchObjOffset of 0, leading the runtime to believe that a catch object should not be initialized. To handle this, allocate the registration node prior to any other frame object. This will ensure that catch objects will not be allocated before the registration node. This fixes PR26757. Differential Revision: http://reviews.llvm.org/D17689 llvm-svn: 262294
* clang-format: Correctly apply wrap before multi-line RHS rule toDaniel Jasper2016-03-012-1/+5
| | | | | | | | | | | | | | | ternary expressions. Before: return aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ? aaaaa : bbbbbbbbbbbbbbb + cccccccccccccccc; After: return aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ? aaaaa : bbbbbbbbbbbbbbb + cccccccccccccccc; llvm-svn: 262293
* clang-format: Increase the penalty for breaking between array subscripts.Daniel Jasper2016-03-012-1/+3
| | | | | | | | | | | | Before: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[aaaaaaaaaaaaaaaaaaaaaaa] [a].aaaaaaaaaaaaaaaaaaaaaa(); After: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[aaaaaaaaaaaaaaaaaaaaaaa][a] .aaaaaaaaaaaaaaaaaaaaaa(); llvm-svn: 262292
* clang-format: [JS] Support quoted object literal keys.Daniel Jasper2016-03-012-1/+9
| | | | | | | | | | | | | | | | | Before: var x = { a: a, b: b, 'c': c, }; After: var x = { a: a, b: b, 'c': c, }; llvm-svn: 262291
* [index] Fix issue where data visitation was disabled with C++ operator call ↵Argyrios Kyrtzidis2016-03-011-2/+2
| | | | | | expressions, during indexing. llvm-svn: 262290
* Fix the template instantiation of ExtParameterInfos; tests to follow.John McCall2016-03-016-20/+97
| | | | llvm-svn: 262289
* Add an llvm_unreachable back to the autogeneration of this covered switch.John McCall2016-03-011-1/+2
| | | | llvm-svn: 262288
* Fix MSVC build failure in source/Target/Process.cpp.Eugene Zelenko2016-03-011-1/+1
| | | | | | Will be good idea to introduce macro/constexpr for NULL thread_result_t. llvm-svn: 262287
* Fix the testcase in r262282Steven Wu2016-03-011-6/+2
| | | | | | | -bitcode_bundle is only passed to the darwin ld64 linker and it is only implemented there. Remove the check on the linker flag. llvm-svn: 262286
* Make test more robust.Sean Silva2016-03-012-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | Really all these tests are checking is that we find a file path. The behavior when we don't find one will have `"ps4-ld"` in it. We just need a path separator to know that a path has been found. The root cause of the flakiness of these tests is the same on Windows and non-Windows: setting the PATH environment variable is not sufficient to guarantee that a particular path is looked up first. Driver::GetProgramPath checks some paths before deferring to PATH (in particular, the directory containing the clang binary itself). I initally ran into this on Windows when putting a PS4 linker in build-dir/bin/ps4-ld for testing. After digging for a while thinking that it was some windows path search oddity (the Windows SearchPathW documentation indicates that its behavior varies depending on a registry setting...). I eventually tried reproducing the issue on Mac and to my surprise found the same issue. Ultimately I traced it down to the extra lookups in Driver::GetProgramPath. llvm-svn: 262285
* [Verifier] Diagnose when unwinding out of cycles of blocksDavid Majnemer2016-03-012-1/+23
| | | | | | | | Generally speaking, this can only happen with unreachable code. However, neglecting to check for this condition would lead us to loop forever. llvm-svn: 262284
* [asan] Retry failed adb commands in android tests.Evgeniy Stepanov2016-03-011-10/+15
| | | | | | | Add limited retries for push/pull adb commands in android tests. May help with the adb flakiness. llvm-svn: 262283
* Introduce -fembed-bitcode driver optionSteven Wu2016-03-019-11/+126
| | | | | | | | | | | | | | | | | | | | | Summary: This is the clang driver part of the change to embedded bitcode. This includes: 1. -fembed-bitcode option which breaks down the compilation into two stages. The first stage emits optimized bitcode and the second stage compiles bitcode into object file. 2. -fembed-bitcode-marker option which doesn't really break down to two stages to speedup the compilation flow. 3. pass the correct linker flag to darwin linker if tool chains supports embedded bitcode. Reviewers: rsmith, thakis Subscribers: thakis, cfe-commits Differential Revision: http://reviews.llvm.org/D17390 llvm-svn: 262282
* Fix Clang-tidy modernize-use-nullptr warnings in some files in ↵Eugene Zelenko2016-03-011-194/+182
| | | | | | source/Target/Process.cpp; other minor fixes. llvm-svn: 262281
* [LLE] Add testcase for the fix in r262267Adam Nemet2016-03-011-0/+43
| | | | llvm-svn: 262280
* [LAA] Add missing debug outputAdam Nemet2016-03-011-1/+3
| | | | llvm-svn: 262279
* Generalize the consumed-parameter array on FunctionProtoTypeJohn McCall2016-03-018-79/+178
| | | | | | | | | to allow arbitrary data to be associated with a parameter. Also, fix a bug where we apparently haven't been serializing this information for the last N years. llvm-svn: 262278
* [analyzer] Update CheckObjCDealloc diagnostic for missing -dealloc.Devin Coughlin2016-03-012-16/+50
| | | | | | | Update the diagnostic for classes missing -dealloc to mention an instance variable that needs to be released. llvm-svn: 262277
* [asan] Fix new[]/delete mismatch in tests.Evgeniy Stepanov2016-03-011-1/+1
| | | | | | | This code is actually never executed because all RUN lines trigger an earlier heap-use-after-free, but there is still a compiler warning. llvm-svn: 262276
* Infrastructure improvements to Clang attribute TableGen.John McCall2016-03-014-91/+205
| | | | | | This should make it easier to add new Attr subclasses. llvm-svn: 262275
* [x86, InstCombine] transform more x86 masked loads to LLVM intrinsicsSanjay Patel2016-02-292-1/+89
| | | | | | | Continuation of: http://reviews.llvm.org/rL262269 llvm-svn: 262273
* [analyzer] Teach CheckObjCDealloc about Block_release().Devin Coughlin2016-02-293-10/+47
| | | | | | It now treats Block_release(b) as a release in addition to [b release]. llvm-svn: 262272
* When 'help' cannot find a command, produce additional help text that also ↵Enrico Granata2016-02-295-19/+93
| | | | | | | | | | | | | | | | | | points the user to the apropos and type lookup commands This is useful in cases such as, e.g. (lldb) help NSString (the user meant type lookup) or (lldb) help kill (the user is looking for process kill) Fixes rdar://24868537 llvm-svn: 262271
* [LLE] Fix a commentAdam Nemet2016-02-291-3/+3
| | | | llvm-svn: 262270
* [x86, InstCombine] transform x86 AVX masked loads to LLVM intrinsicsSanjay Patel2016-02-292-1/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The intended effect of this patch in conjunction with: http://reviews.llvm.org/rL259392 http://reviews.llvm.org/rL260145 is that customers using the AVX intrinsics in C will benefit from combines when the load mask is constant: __m128 mload_zeros(float *f) { return _mm_maskload_ps(f, _mm_set1_epi32(0)); } __m128 mload_fakeones(float *f) { return _mm_maskload_ps(f, _mm_set1_epi32(1)); } __m128 mload_ones(float *f) { return _mm_maskload_ps(f, _mm_set1_epi32(0x80000000)); } __m128 mload_oneset(float *f) { return _mm_maskload_ps(f, _mm_set_epi32(0x80000000, 0, 0, 0)); } ...so none of the above will actually generate a masked load for optimized code. This is the masked load counterpart to: http://reviews.llvm.org/rL262064 llvm-svn: 262269
* [Verifier] Handle more funclet edge casesDavid Majnemer2016-02-292-6/+59
| | | | | | | This change makes the verifier a little more paranoid. It was possible to trick the verifier into crashing or infinite looping. llvm-svn: 262268
* [LLE] Fix SingleSource/Benchmarks/Polybench/stencils/jacobi-2d-imper with PollyAdam Nemet2016-02-291-0/+5
| | | | | | | | | We can actually have dependences between accesses with different underlying types. Bail in this case. A test will follow shortly. llvm-svn: 262267
* Simplify some boolean conditional return statements in AArch64.Eric Christopher2016-02-297-48/+18
| | | | | | | | http://reviews.llvm.org/D9979 Patch by Richard Thomson (and some conflict resolution by me). llvm-svn: 262266
* Improve the debug output of DwarfDebug::buildLocationList().Adrian Prantl2016-02-292-1/+15
| | | | llvm-svn: 262265
* Document an anomaly in this testcase.Adrian Prantl2016-02-291-1/+6
| | | | llvm-svn: 262264
* Reapply r262092: [FileCheck] Abort if -NOT is combined with another suffix.Paul Robinson2016-02-292-1/+46
| | | | | | | | | Combinations of suffixes that look useful are actually ignored; complaining about them will avoid mistakes. Differential Revision: http://reviews.llvm.org/D17587 llvm-svn: 262263
* [Verifier] Minor fix to error message; NFCSanjoy Das2016-02-292-3/+3
| | | | llvm-svn: 262262
* [analyzer] Don't treat calls to system headers as escaping in CheckObjCDealloc.Devin Coughlin2016-02-293-38/+170
| | | | | | | | | | | | | | | | | | | This prevents false negatives when a -dealloc method, for example, removes itself as as an observer with [[NSNotificationCenter defaultCenter] removeObserver:self]. It is unlikely that passing 'self' to a system header method will release 'self''s instance variables, so this is unlikely to produce false positives. A challenge here is that while CheckObjCDealloc no longer treats these calls as escaping, the rest of the analyzer still does. In particular, this means that loads from the same instance variable before and after a call to a system header will result in different symbols being loaded by the region store. To account for this, the checker now treats different ivar symbols with the same instance and ivar decl as the same for the purpose of release checking and more eagerly removes a release requirement when an instance variable is assumed to be nil. This was not needed before because when an ivar escaped its release requirement was always removed -- now the requirement is not removed for calls to system headers. llvm-svn: 262261
* Fix a typo in my previous commit. This would cause mutable NSArrays to show ↵Enrico Granata2016-02-291-1/+1
| | | | | | up empty llvm-svn: 262260
* Change the user-visible name for the argument type language to source-languageEnrico Granata2016-02-291-1/+1
| | | | | | | | This makes it so that help language provides help on the language command and help source-language provides the list of source languages one can pass as an option Fixes rdar://24869942 llvm-svn: 262259
* [Hexagon] As a size optimization, not lazy extending TPREL or DTPREL ↵Colin LeMahieu2016-02-292-8/+22
| | | | | | variants since they're usually in range. llvm-svn: 262258
* IdentifierNamingCheck.cpp: try to fix MSVC buildHans Wennborg2016-02-291-4/+4
| | | | | | | | | It was failing to build with: clang-tidy\readability\IdentifierNamingCheck.cpp(640): error C2882: 'format' : illegal use of namespace identifier in expression llvm-svn: 262257
* NFC: Refactor ProcessWinMiniDump to use a more traditional pimpl idiom.Adrian McCarthy2016-02-292-274/+309
| | | | | | | | This is a mechanical refactor. There should be no functional changes in this commit. Instead of encapsulating just the Windows-specific data, ProcessWinMiniDump now uses a private implementation class. This reduces indirections (in the source). It makes it easier to add private helper methods without touching the header and allows them to have platform-specific types as parameters. The only trick was that the pimpl class needed a back pointer in order to call a couple methods. llvm-svn: 262256
* Fix TestInlines.py on WindowsAdrian McCarthy2016-02-294-8/+8
| | | | | | | | | | | | | | The inlining semantics for C and C++ are different, which affects the test's expectation of the number of times the function should appear in the binary. In the case of this test, C semantics means there should be three instances of inner_inline, while C++ semantics means there should be only two. On Windows, clang uses C++ inline semantics even for C code, and there doesn't seem to be a combination of compiler flags to avoid this. So, for consistency, I've recast the test to use C++ everywhere. Since the test resided under lang/c, it seemed appropriate to move it to lang/cpp. This does not address the other XFAIL for this test on Linux/gcc. See https://llvm.org/bugs/show_bug.cgi?id=26710 Differential Revision: http://reviews.llvm.org/D17650 llvm-svn: 262255
* Add an LLDB data formatter for single-element NSArray and NSDictionary Cocoa ↵Enrico Granata2016-02-2913-42/+300
| | | | | | | | containers Fixes rdar://23715118 llvm-svn: 262254
* [Hexagon] Missed member initialization causing ubsan failure.Colin LeMahieu2016-02-291-1/+2
| | | | llvm-svn: 262252
* Avoid use of -fsanitize=vptr in MSVC env, it is not yet supportedReid Kleckner2016-02-291-0/+2
| | | | llvm-svn: 262251
* Enable LoopLoadElimination by defaultAdam Nemet2016-02-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: I re-benchmarked this and results are similar to original results in D13259: On ARM64: SingleSource/Benchmarks/Polybench/linear-algebra/solvers/dynprog -59.27% SingleSource/Benchmarks/Polybench/stencils/adi -19.78% On x86: SingleSource/Benchmarks/Polybench/linear-algebra/solvers/dynprog -27.14% And of course the original ~20% gain on SPECint_2006/456.hmmer with Loop Distribution. In terms of compile time, there is ~5% increase on both SingleSource/Benchmarks/Misc/oourafft and SingleSource/Benchmarks/Linkpack/linkpack-pc. These are both very tiny loop-intensive programs where SCEV computations dominates compile time. The reason that time spent in SCEV increases has to do with the design of the old pass manager. If a transform pass does not preserve an analysis we *invalidate* the analysis even if there was *no* modification made by the transform pass. This means that currently we don't take advantage of LLE and LV sharing the same analysis (LAA) and unfortunately we recompute LAA *and* SCEV for LLE. (There should be a way to work around this limitation in the case of SCEV and LAA since both compute things on demand and internally cache their result. Thus we could pretend that transform passes preserve these analyses and manually invalidate them upon actual modification. On the other hand the new pass manager is supposed to solve so I am not sure if this is worthwhile.) Reviewers: hfinkel, dberlin Subscribers: dberlin, reames, mssimpso, aemerson, joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D16300 llvm-svn: 262250
* Fixup MIPS testcase after r262247 and make it a little more robust.Adrian Prantl2016-02-291-10/+15
| | | | llvm-svn: 262249
* [AArch64] Fix isLegalAddImmediate() to return true for valid negative values.Geoff Berry2016-02-292-2/+48
| | | | | | | | | | Reviewers: t.p.northover, jmolloy Subscribers: mcrosier, aemerson, llvm-commits, rengolin Differential Revision: http://reviews.llvm.org/D17463 llvm-svn: 262248
* Fix PR26585 by improving the promotion of DBG_VALUEs to DW_AT_locations.Adrian Prantl2016-02-298-21/+127
| | | | | | | | | | | | | | | When a variable is described by a single DBG_VALUE instruction we can often use a more efficient inline DW_AT_location instead of using a location list. This commit makes the heuristic that decides when to apply this optimization stricter by also verifying that the DBG_VALUE is live at the entry of the function (instead of just checking that it is valid until the end of the function). <rdar://problem/24611008> llvm-svn: 262247
OpenPOWER on IntegriCloud