summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* For now skip ThreadSpecificBreakTestCase on FreeBSDEd Maste2015-09-091-0/+1
| | | | | | | | | | It often hangs or times out, and obscures issues with other tests. Just skip it for now (until the FreeBSD test suite is producing consistent results) so that we can get a buildbot back. Previous investigation (for failures) in llvm.org/pr18522 llvm-svn: 247190
* Preparatory work for letting language plugins help the StringPrinter with ↵Enrico Granata2015-09-096-125/+130
| | | | | | formatting special characters llvm-svn: 247189
* [MS ABI] Don't crash on references to pointers to members in argsDavid Majnemer2015-09-092-2/+8
| | | | | | | | | | | | | We know that a reference can always be dereferenced. However, we don't always know the number of bytes if the reference's pointee type is incomplete. This case was correctly handled but we didn't consider the case where the type is complete but we cannot calculate its size for ABI specific reasons. In this specific case, a member pointer's size is available only under certain conditions. This fixes PR24703. llvm-svn: 247188
* [WebAssembly] Update target datalayout strings.Dan Gohman2015-09-0910-10/+10
| | | | llvm-svn: 247187
* Change EmitRecordWithAbbrevImpl to take Optional record code. NFC.Teresa Johnson2015-09-091-15/+30
| | | | | | | | | | | | This change enables EmitRecord to pass the supplied record Code to EmitRecordWithAbbrevImpl, rather than insert it into the Vals array. It is an enabler for changing EmitRecord to take an ArrayRef<uintty> instead of a SmallVectorImpl<uintty>& Patch suggested by Duncan P. N. Exon Smith, modified by myself a bit to get correct assertion checking. llvm-svn: 247186
* [elf2] Assign output sections to PHDRs.Michael J. Spencer2015-09-097-62/+96
| | | | | | This is a minimal implementation to produce legal output. Future patches will combine multiple compatible PT_LOADs. llvm-svn: 247185
* ScalarEvolution assume hanging bugfixPiotr Padlewski2015-09-092-13/+152
| | | | | | http://reviews.llvm.org/D12719 llvm-svn: 247184
* Revert "EmitRecordWith* API change: takes an ArrayRef instead of a ↵Mehdi Amini2015-09-094-147/+239
| | | | | | | | | SmallVector (NFC)" This reverts commit r247179. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 247183
* Revert "Bitcode Writer: EmitRecordWith* takes an ArrayRef instead of a ↵Mehdi Amini2015-09-091-16/+15
| | | | | | | | | SmallVector (NFC)" This reverts commit r247178. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 247182
* Add the DT_NEEDED entries to the dynamic table.Rafael Espindola2015-09-096-9/+33
| | | | llvm-svn: 247181
* Revert trunc(lshr (sext A), Cst) to ashr A, CstDavid Majnemer2015-09-092-57/+0
| | | | | | This reverts commit r246997, it introduced a regression (PR24763). llvm-svn: 247180
* EmitRecordWith* API change: takes an ArrayRef instead of a SmallVector (NFC)Mehdi Amini2015-09-094-239/+147
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 247179
* Bitcode Writer: EmitRecordWith* takes an ArrayRef instead of a SmallVector (NFC)Mehdi Amini2015-09-091-15/+16
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 247178
* Revert "AVX512: Implemented encoding and intrinsics for vextracti64x4 ↵Renato Golin2015-09-0912-1145/+89
| | | | | | | | ,vextracti64x2, vextracti32x8, vextracti32x4, vextractf64x4, vextractf64x2, vextractf32x8, vextractf32x4 Added tests for intrinsics and encoding." This reverts commit r247149, as it was breaking numerous buildbots of varied architectures. llvm-svn: 247177
* [libclang] Add missing clang_CompileCommand_* functions in libclang.exports.Argyrios Kyrtzidis2015-09-091-0/+2
| | | | llvm-svn: 247176
* Make sure to flush the stream to make sure the string is up to date when we ↵Greg Clayton2015-09-091-0/+1
| | | | | | query its size. llvm-svn: 247175
* allow unpredictable metadata on switch statementsSanjay Patel2015-09-091-3/+3
| | | | llvm-svn: 247174
* Don't allow duplicate names for tests.Zachary Turner2015-09-094-2/+2
| | | | | | | | | We had 2 tests named TestCPPBreakpoints.py. If one of those tests failed, both of them would be reported as failures and contribute to the failure count. There may be other examples of duplicate test names, and we should fix those as we find them. llvm-svn: 247173
* Fix typo: zycle -> cycle [NFC]Michael Kruse2015-09-091-1/+1
| | | | llvm-svn: 247172
* Save LaneMask with livein registersMatthias Braun2015-09-0924-88/+133
| | | | | | | | | | | | | | | | | With subregister liveness enabled we can detect the case where only parts of a register are live in, this is expressed as a 32bit lanemask. The current code only keeps registers in the live-in list and therefore enumerated all subregisters affected by the lanemask. This turned out to be too conservative as the subregister may also cover additional parts of the lanemask which are not live. Expressing a given lanemask by enumerating a minimum set of subregisters is computationally expensive so the best solution is to simply change the live-in list to store the lanemasks as well. This will reduce memory usage for targets using subregister liveness and slightly increase it for other targets Differential Revision: http://reviews.llvm.org/D12442 llvm-svn: 247171
* VirtRegMap: Improve addMBBLiveIns() using SlotIndex::MBBIndexIterator; NFCMatthias Braun2015-09-093-41/+62
| | | | | | | | | | | | | | | | | | Now that we have an explicit iterator over the idx2MBBMap in SlotIndices we can use the fact that segments and the idx2MBBMap is sorted by SlotIndex position so can advance both simultaneously instead of starting from the beginning for each segment. This complicates the code for the subregister case somewhat but should be more efficient and has the advantage that we get the final lanemask for each block immediately which will be important for a subsequent change. Removes the now unused SlotIndexes::findMBBLiveIns function. Differential Revision: http://reviews.llvm.org/D12443 llvm-svn: 247170
* Fix indentation.Rui Ueyama2015-09-091-12/+12
| | | | llvm-svn: 247169
* ELF2: Reduce nesting by returning early. NFC.Rui Ueyama2015-09-091-11/+9
| | | | llvm-svn: 247168
* [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatibleChandler Carruth2015-09-09136-1747/+2263
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with the new pass manager, and no longer relying on analysis groups. This builds essentially a ground-up new AA infrastructure stack for LLVM. The core ideas are the same that are used throughout the new pass manager: type erased polymorphism and direct composition. The design is as follows: - FunctionAAResults is a type-erasing alias analysis results aggregation interface to walk a single query across a range of results from different alias analyses. Currently this is function-specific as we always assume that aliasing queries are *within* a function. - AAResultBase is a CRTP utility providing stub implementations of various parts of the alias analysis result concept, notably in several cases in terms of other more general parts of the interface. This can be used to implement only a narrow part of the interface rather than the entire interface. This isn't really ideal, this logic should be hoisted into FunctionAAResults as currently it will cause a significant amount of redundant work, but it faithfully models the behavior of the prior infrastructure. - All the alias analysis passes are ported to be wrapper passes for the legacy PM and new-style analysis passes for the new PM with a shared result object. In some cases (most notably CFL), this is an extremely naive approach that we should revisit when we can specialize for the new pass manager. - BasicAA has been restructured to reflect that it is much more fundamentally a function analysis because it uses dominator trees and loop info that need to be constructed for each function. All of the references to getting alias analysis results have been updated to use the new aggregation interface. All the preservation and other pass management code has been updated accordingly. The way the FunctionAAResultsWrapperPass works is to detect the available alias analyses when run, and add them to the results object. This means that we should be able to continue to respect when various passes are added to the pipeline, for example adding CFL or adding TBAA passes should just cause their results to be available and to get folded into this. The exception to this rule is BasicAA which really needs to be a function pass due to using dominator trees and loop info. As a consequence, the FunctionAAResultsWrapperPass directly depends on BasicAA and always includes it in the aggregation. This has significant implications for preserving analyses. Generally, most passes shouldn't bother preserving FunctionAAResultsWrapperPass because rebuilding the results just updates the set of known AA passes. The exception to this rule are LoopPass instances which need to preserve all the function analyses that the loop pass manager will end up needing. This means preserving both BasicAAWrapperPass and the aggregating FunctionAAResultsWrapperPass. Now, when preserving an alias analysis, you do so by directly preserving that analysis. This is only necessary for non-immutable-pass-provided alias analyses though, and there are only three of interest: BasicAA, GlobalsAA (formerly GlobalsModRef), and SCEVAA. Usually BasicAA is preserved when needed because it (like DominatorTree and LoopInfo) is marked as a CFG-only pass. I've expanded GlobalsAA into the preserved set everywhere we previously were preserving all of AliasAnalysis, and I've added SCEVAA in the intersection of that with where we preserve SCEV itself. One significant challenge to all of this is that the CGSCC passes were actually using the alias analysis implementations by taking advantage of a pretty amazing set of loop holes in the old pass manager's analysis management code which allowed analysis groups to slide through in many cases. Moving away from analysis groups makes this problem much more obvious. To fix it, I've leveraged the flexibility the design of the new PM components provides to just directly construct the relevant alias analyses for the relevant functions in the IPO passes that need them. This is a bit hacky, but should go away with the new pass manager, and is already in many ways cleaner than the prior state. Another significant challenge is that various facilities of the old alias analysis infrastructure just don't fit any more. The most significant of these is the alias analysis 'counter' pass. That pass relied on the ability to snoop on AA queries at different points in the analysis group chain. Instead, I'm planning to build printing functionality directly into the aggregation layer. I've not included that in this patch merely to keep it smaller. Note that all of this needs a nearly complete rewrite of the AA documentation. I'm planning to do that, but I'd like to make sure the new design settles, and to flesh out a bit more of what it looks like in the new pass manager first. Differential Revision: http://reviews.llvm.org/D12080 llvm-svn: 247167
* MachineVerifier: Check that SlotIndex MBBIndexList is sorted.Matthias Braun2015-09-091-0/+17
| | | | | | | This introduces a check that the MBBIndexList is sorted as proposed in http://reviews.llvm.org/D12443 but split up into a separate commit. llvm-svn: 247166
* ELF2: Return early. NFC.Rui Ueyama2015-09-091-17/+16
| | | | llvm-svn: 247165
* Fix some compiler warnings.Zachary Turner2015-09-093-4/+10
| | | | llvm-svn: 247164
* [clang-tidy] Fix PR22785.Alexander Kornienko2015-09-093-5/+44
| | | | | | | | | | | Fix http://llvm.org/PR22785. Bug 22785 - readability-braces-around-statements doesn't work well with macros. http://reviews.llvm.org/D12729 Patch by Marek Kurdej! llvm-svn: 247163
* AMDGPU: Extract full 64-bit subregister and use subregsMatt Arsenault2015-09-091-35/+29
| | | | | | | | | | | | Instead of extracting both 32-bit components from the 128-bit register. This produces fewer copies and is easier for the copy peephole optimizer to understand and see the actual uses as extracts from a reg_sequence. This avoids needing to handle subregister composing in the PeepholeOptimizer's ValueTracker for this case. llvm-svn: 247162
* AMDGPU: Remove unused multiclass argumentMatt Arsenault2015-09-091-5/+4
| | | | llvm-svn: 247161
* Fix a small bug in clang where generating some temporary files would have an ↵Argyrios Kyrtzidis2015-09-093-3/+3
| | | | | | | | extra period before the extension. Patch by Cameron Esfahani! llvm-svn: 247160
* llvm-config: Add --build-system optionTom Stellard2015-09-094-0/+8
| | | | | | | | | | | | | | | Summary: This can be used for distinguishing between cmake and autoconf builds. Users may need this in order to handle inconsistencies between the outputs of the two build systems. Reviewers: echristo, chandlerc, beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11838 llvm-svn: 247159
* [WebAssembly] Implement calls with void return types.Dan Gohman2015-09-095-8/+27
| | | | llvm-svn: 247158
* AMDGPU/SI: Fold operands through REG_SEQUENCE instructionsTom Stellard2015-09-094-14/+27
| | | | | | | | | | | | | | Summary: This helps mostly when we use add instructions for address calculations that contain immediates. Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D12256 llvm-svn: 247157
* [CostModel][AArch64] Remove amortization factor for some of the vector ↵Silviu Baranga2015-09-092-10/+11
| | | | | | | | | | | | | | | | | select instructions Summary: We are not scalarizing the wide selects in codegen for i16 and i32 and therefore we can remove the amortization factor. We still have issues with i64 vectors in codegen though. Reviewers: mcrosier Subscribers: mcrosier, aemerson, llvm-commits, rengolin Differential Revision: http://reviews.llvm.org/D12724 llvm-svn: 247156
* Start adding content to the dynamic section.Rafael Espindola2015-09-096-35/+69
| | | | | | | With this patch we create a dynamic string table (it is allocated, unlike the regular one) and the dynamic section has a DT_STRTAB pointing to it. llvm-svn: 247155
* don't repeat function names in comments; NFCSanjay Patel2015-09-094-33/+27
| | | | llvm-svn: 247154
* [clang-tidy] Automatically redirect to the new page.Alexander Kornienko2015-09-091-1/+4
| | | | llvm-svn: 247153
* [WebAssembly] Tidy up some unneeded newline characters.Dan Gohman2015-09-091-10/+9
| | | | llvm-svn: 247152
* [CMake] Flag recursive cmake invocations for cross-compileJoseph Tremoulet2015-09-092-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Cross-compilation uses recursive cmake invocations to build native host tools. These recursive invocations only forward a fixed set of variables/options, since the native environment is generally the default. This change adds -DLLVM_TARGET_IS_CROSSCOMPILE_HOST=TRUE to the recursive cmake invocations, so that cmake files can distinguish these recursive invocations from top-level ones, which can explain why expected options are unset. LLILC will use this to avoid trying to generate its build rules in the crosscompile native host target (where it is not needed), which would fail if attempted because LLILC requires a cmake variable passed on the command line, which is not forwarded in the recursive invocation. Reviewers: rnk, beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D12679 llvm-svn: 247151
* function names start with a lower case letter; NFCSanjay Patel2015-09-091-54/+54
| | | | llvm-svn: 247150
* AVX512: Implemented encoding and intrinsics forIgor Breger2015-09-0912-89/+1145
| | | | | | | | | vextracti64x4 ,vextracti64x2, vextracti32x8, vextracti32x4, vextractf64x4, vextractf64x2, vextractf32x8, vextractf32x4 Added tests for intrinsics and encoding. Differential Revision: http://reviews.llvm.org/D11802 llvm-svn: 247149
* don't repeat function names in comments; NFCSanjay Patel2015-09-091-35/+32
| | | | llvm-svn: 247148
* Disable support for pointer expressionsJohannes Doerfert2015-09-097-2/+41
| | | | | | | | The support for pointer expressions is broken as it can only handle some patterns in the IslExprBuilder. We should to treat pointers in expressions the same as integers at some point and revert this patch. llvm-svn: 247147
* [mips][microMIPS] Implement ADDU16, AND16, ANDI16, NOT16, OR16, SLL16 and ↵Zoran Jovanovic2015-09-097-11/+141
| | | | | | | | SRL16 instructions Differential Revision: http://reviews.llvm.org/D11178 llvm-svn: 247146
* Fix PR 24633 - Handle undef values when parsing standalone constants.Alex Lorenz2015-09-093-0/+21
| | | | llvm-svn: 247145
* [Solaris] Use the GCC Installation detector to add the C++ include paths.Rafael Espindola2015-09-094-9/+40
| | | | | | Patch by Xan López! llvm-svn: 247144
* Update expectedFailureFreeBSD to expectedFlakeyFreeBSD for intermittent testsEd Maste2015-09-093-3/+3
| | | | | | | | | | | Due to LLDB or test race conditions these tests do not pass consistently. llvm.org/pr15037 llvm.org/pr19310 llvm.org/pr22611 llvm-svn: 247143
* Generate gitversion.h in autoconf buildsMichael Kruse2015-09-092-1/+6
| | | | | | | | | | | | | | | | | | Add a custom makefile rule to generate lib/External/isl/gitversion.h from GIT_HEAD_ID and trigger it using BULIT_SOURCES to ensure the file exists before compilation starts. The latest ISL creates gitversion.h from Makefile.am only, instead also from configure.ac in previous version. While the Polly build invokes configure, it does not invoke ISL's make such that the file was missing. Invoking ISL's make would come with additional problems such as triggering automake because of not preserved file time stamps. Re-running automake might not be successful on other system configurations for instance because it was preconfigured without --with-clang option. llvm-svn: 247142
* XFAIL TestFormatters on FreeBSDEd Maste2015-09-091-0/+2
| | | | | | | | | The test is hitting an assertion in Clang. This is an extension of r246766. llvm.org/pr24691 llvm-svn: 247141
OpenPOWER on IntegriCloud