summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update paths in libc++ build instructions. Patch from Jonathan Anderson.Eric Fiselier2015-12-141-2/+2
| | | | llvm-svn: 255561
* Update how libc++/libc++abi link the tests. Follow up on r255559.Eric Fiselier2015-12-141-3/+4
| | | | llvm-svn: 255560
* [libc++abi] Use libgcc and libgcc_s to provide _Unwind symbols instead of ↵Eric Fiselier2015-12-142-4/+6
| | | | | | | | | | | | | | | | | | libgcc_eh.a Summary: libgcc_eh.a cannot be used when building libc++abi as a shared library (the default configuration). See this post for some more discussion: https://gcc.gnu.org/ml/gcc/2012-03/msg00104.html This patch reverts back to using libgcc_s when linking libc++abi.so. Reviewers: danalbert, chandlerc, mclow.lists, ismail, compnerd Subscribers: vkalintiris, cfe-commits Differential Revision: http://reviews.llvm.org/D15440 llvm-svn: 255559
* [X86] Part 2 to fix x86-64 fp128 calling convention.Chih-Hung Hsieh2015-12-1416-25/+1052
| | | | | | | | | | | | | | | | | | | | | | Part 1 was submitted in http://reviews.llvm.org/D15134. Changes in this part: * X86RegisterInfo.td, X86RecognizableInstr.cpp: Add FR128 register class. * X86CallingConv.td: Pass f128 values in XMM registers or on stack. * X86InstrCompiler.td, X86InstrInfo.td, X86InstrSSE.td: Add instruction selection patterns for f128. * X86ISelLowering.cpp: When target has MMX registers, configure MVT::f128 in FR128RegClass, with TypeSoftenFloat action, and custom actions for some opcodes. Add missed cases of MVT::f128 in places that handle f32, f64, or vector types. Add TODO comment to support f128 type in inline assembly code. * SelectionDAGBuilder.cpp: Fix infinite loop when f128 type can have VT == TLI.getTypeToTransformTo(Ctx, VT). * Add unit tests for x86-64 fp128 type. Differential Revision: http://reviews.llvm.org/D11438 llvm-svn: 255558
* Revert "Temporarily skip TestWithLimitDebugInfo on Darwin and OS X"Todd Fiala2015-12-141-2/+0
| | | | | | This reverts commit 30ed0826a1bb800454088ea1ae16c113a69b92b1. llvm-svn: 255557
* [Sema] Make nullness warnings appear in C++.George Burgess IV2015-12-145-13/+61
| | | | | | | | | | | | | | | | | | | Given the following code: int *_Nullable ptr; int *_Nonnull nn = ptr; ...In C, clang will warn you about `nn = ptr`, because you're assigning a nonnull pointer to a nullable pointer. In C++, clang issues no such warning. This patch helps ensure that clang doesn't ever miss an opportunity to complain about C++ code. N.B. Though this patch has a differential revision link, the actual review took place over email. Differential Revision: http://reviews.llvm.org/D14938 llvm-svn: 255556
* add fast-math-flags to 'call' instructions (PR21290)Sanjay Patel2015-12-1414-45/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds optional fast-math-flags (the same that apply to fmul/fadd/fsub/fdiv/frem/fcmp) to call instructions in IR. Follow-up patches would use these flags in LibCallSimplifier, add support to clang, and extend FMF to the DAG for calls. Motivating example: %y = fmul fast float %x, %x %z = tail call float @sqrtf(float %y) We'd like to be able to optimize sqrt(x*x) into fabs(x). We do this today using a function-wide attribute for unsafe-math, but we really want to trigger on the instructions themselves: %z = tail call fast float @sqrtf(float %y) because in an LTO build it's possible that calls with fast semantics have been inlined into a function with non-fast semantics. The code changes and tests are based on the recent commits that added "notail": http://reviews.llvm.org/rL252368 and added FMF to fcmp: http://reviews.llvm.org/rL241901 Differential Revision: http://reviews.llvm.org/D14707 llvm-svn: 255555
* Reordering fields to reduce padding in LLVM. NFCBen Craig2015-12-143-31/+35
| | | | llvm-svn: 255554
* Reordering fields to reduce padding in Clang. NFCBen Craig2015-12-142-11/+11
| | | | llvm-svn: 255552
* [WebAssembly] Add an assert to sanity-check dead flags.Dan Gohman2015-12-141-0/+3
| | | | | | | The WebAssemblyStoreResults pass runs before LiveVariables, so it doesn't expect to have to keep dead flags up to date; check this with an assert. llvm-svn: 255551
* Start implementing FDE dumping when printing the eh_frame.Pete Cooper2015-12-142-6/+113
| | | | | | | | | | This code adds some simple decoding of the FDE's in an eh_frame. There's still more to be done in terms of error handling and verification. Also, we need to be able to decode the CFI's. llvm-svn: 255550
* Temporarily skip TestWithLimitDebugInfo on Darwin and OS XTodd Fiala2015-12-141-0/+2
| | | | | | This test is erroring out on a sequence call to a function. llvm-svn: 255549
* [Editline] Redesign automatic indentation fix command for robustnessKate Stone2015-12-141-20/+33
| | | | | | The FixIndentationCommand implementation has proven to be fragile across various libedit iterations. This patch reworks the command to use the same basic strategy as when moving between lines in a multi-line edit session: when indentation changes are required, exit line editing completely and restart with amended content. This approach won't be susceptible to subtle behavior differences libedit has introduced over time. llvm-svn: 255548
* Correction in TestFrames.py test for arm targets in thumb modeOmair Javaid2015-12-141-3/+6
| | | | | | Differential revision: http://reviews.llvm.org/D15061 llvm-svn: 255547
* Print the eh_frame section in MachoDump.Pete Cooper2015-12-143-1/+198
| | | | | | | | | | | | | | This is the start of work to dump the contents of the eh_frame section. It currently emits CIE entries. FDE entries will come later. It also needs improved error checking which will follow soon. http://reviews.llvm.org/D15502 Reviewed by Kevin Enderby and Lang Hames. llvm-svn: 255546
* [PATCH] Adding checker to detect excess padding in recordsBen Craig2015-12-146-0/+959
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The intent of this checker is to generate a report for any class / structure that could reduce its padding by reordering the fields. This results in a very noisy checker. To reduce the noise, this checker will currently only warn when the number of bytes over "optimal" is more than 24. This value is configurable with -analyzer-config performance.Padding:AllowedPad=N. Small values of AllowedPad have the potential to generate hundreds of reports, and gigabytes of HTML reports. The checker searches for padding violations in two main ways. First, it goes record by record. A report is generated if the fields could be reordered in a way that reduces the padding by more than AllowedPad bytes. Second, the checker will generate a report if an array will cause more than AllowedPad padding bytes to be generated. The record checker currently skips many ABI specific cases. Classes with base classes are skipped because base class tail padding is ABI specific. Bitfields are just plain hard, and duplicating that code seems like a bad idea. VLAs are both uncommon and non-trivial to fix. The array checker isn't very thorough right now. It only checks to see if the element type's fields could be reordered, and it doesn't recursively check to see if any of the fields' fields could be reordered. At some point in the future, it would be nice if "arrays" could also look at array new usages and malloc patterns that appear to be creating arrays. llvm-svn: 255545
* [Hexagon] Add "const" to function parameters in HexagonInstrInfoKrzysztof Parzyszek2015-12-142-35/+37
| | | | llvm-svn: 255544
* test infra: enable single-worker rerun phase for flakey tests.Todd Fiala2015-12-149-26/+195
| | | | | | | | | | | | | | | | Use of --rerun-all-issues will enable any test method failure, not just test methods marked with the flakey decorator, to rerun. Currently this does not change the flakey logic's immediate rerun attempt. I want to make sure this doesn't cause any significant issues before changing that part. The rerun reporting is only known to work properly with the default (new) BasicResultsFormatter reporting. Once we work out any issues, I'll go back and make sure the curses output handles it properly as well. llvm-svn: 255543
* Make skipIf decorator support not_in() functor.Zachary Turner2015-12-141-6/+8
| | | | llvm-svn: 255542
* Fix formatting. NFC.Diego Novillo2015-12-141-8/+5
| | | | llvm-svn: 255541
* [Packetizer] Add AliasAnalysis as a parameter to the packetizerKrzysztof Parzyszek2015-12-144-10/+18
| | | | | | | | This will make the depedence graph more accurate if an alias analysis is provided. If nullptr is specified in its place, the behavior will remain as it is currently. llvm-svn: 255540
* [PowerPC] Fix test/CodeGen/ppc-sfvarargsPetar Jovanovic2015-12-141-1/+1
| | | | | | | | | The issue seems to be that .ll file may either use number of register value or alias %numUsedRegs, so the check needs to cover both cases. This will hopefully fix the last regression introduced by r255515. llvm-svn: 255539
* Add missing vtable anchor's.Pete Cooper2015-12-142-0/+12
| | | | | | | | | | | | | | The following description is from http://reviews.llvm.org/D15481: ICmpInst, GetElementPtrInst and PHINode have no anchor functions. This causes the vtable and the type info (if RTTI is enabled in user code) to be emitted in multiple translation units. Before 3.7, the destructors were the key functions for these nodes, but they have been removed. There have been discussions about this here: http://lists.llvm.org/pipermail/llvm-dev/2015-August/089010.html and here: http://lists.llvm.org/pipermail/llvm-dev/2015-December/092921.html. Patch by Visoiu Mistrih Francis llvm-svn: 255538
* [Packetizer] Make endPacket virtualKrzysztof Parzyszek2015-12-141-2/+4
| | | | | | | This will allow custom handling of packet finalization. The current definition of endPacket will still perform the default finalization. llvm-svn: 255537
* [ConstantFold] Fix bitcast to gep constant folding transform.David Majnemer2015-12-143-1/+22
| | | | | | | | | | | | Make sure to check that the destination type is sized. A check was present but was incorrectly checking the source type instead. Patch by Amaury SECHET! Differential Revision: http://reviews.llvm.org/D15264 llvm-svn: 255536
* Save several std::string constructions using llvm::Twine.Yaron Keren2015-12-141-9/+6
| | | | llvm-svn: 255535
* docs: Correct wording in LangRef relating to available_externally linkage.Peter Collingbourne2015-12-141-8/+9
| | | | | | Differential Revision: http://reviews.llvm.org/D15343 llvm-svn: 255534
* [PowerPC] Fix make-check issuesPetar Jovanovic2015-12-142-7/+7
| | | | | | | Previous change r255515 introduced a couple of issues likely caused by a different configure setup. llvm-svn: 255533
* Allow pseudo-destructor calls on forward-declared Objective-C class pointers.John McCall2015-12-142-1/+29
| | | | | | rdar://18522255 llvm-svn: 255531
* Remove the successor probabilities normalization in tail duplication pass.Cong Hou2015-12-141-1/+0
| | | | | | | | | | | | The normalization may cause assertion failures on SystemZ and some out-of-tree tests. The root cause is that unknown probabilities are materialized into known ones by calling getSuccProbability(), which is then used to add another successor to the same MBB which results in mixed known and unknown probabilities. But currently those mixed probabilities cannot be normalized. I will compose another patch to fix the root issue. llvm-svn: 255530
* [MergeFunctions] Use II instead of CI for InvokeInst; NFCSanjoy Das2015-12-142-5/+35
| | | | | | Using `CI` is slightly misleading. llvm-svn: 255529
* Teach MergeFunctions about operand bundlesSanjoy Das2015-12-142-0/+65
| | | | llvm-svn: 255528
* Teach haveSameSpecialState about operand bundlesSanjoy Das2015-12-143-3/+41
| | | | llvm-svn: 255527
* Add "const" to function arguments in DFAPacketizerKrzysztof Parzyszek2015-12-143-13/+13
| | | | llvm-svn: 255526
* Make debug info specification use categories system.Zachary Turner2015-12-148-107/+42
| | | | | | | Reviewed By: Tamas Berghammer, Pavel Labath Differential Revision: http://reviews.llvm.org/D15428 llvm-svn: 255525
* clang-cl: make /Wall turn on both -Wall and -Wextra (PR25563)Hans Wennborg2015-12-142-2/+2
| | | | | | | | The documentation suggests /Wall should really turn on -Wextra and any other warnings that are not enabled by default. That would correspond to Clang's -Weverything, but is probably not what users want. llvm-svn: 255524
* [PGO] Value profiling text format reader/writer supportXinliang David Li2015-12-148-1/+284
| | | | | | | | | This patch adds the missing functionality in parsable text format support for value profiling. Differential Revision: http://reviews.llvm.org/D15212 llvm-svn: 255523
* [IR] Remove terminatepadDavid Majnemer2015-12-1441-771/+110
| | | | | | | | | | | | | It turns out that terminatepad gives little benefit over a cleanuppad which calls the termination function. This is not sufficient to implement fully generic filters but MSVC doesn't support them which makes terminatepad a little over-designed. Depends on D15478. Differential Revision: http://reviews.llvm.org/D15479 llvm-svn: 255522
* [MS ABI] Don't rely on terminatepadDavid Majnemer2015-12-143-10/+11
| | | | | | | | | | | | | | | We'd like to remove support for terminatepad from LLVM. To do this, we need to move Clang off of it first. The intent behind terminatepad was to carefully model exception specifications for the MSVC personality. However, we don't support exception specifications for the MSVC personality and neither does MSVC. Instead, MSVC supports all-or-nothing exception specifications. We can model this limited usage using cleanuppads which call std::terminate. Differential Revision: http://reviews.llvm.org/D15478 llvm-svn: 255521
* FastISel needs to remove dead code when it bails out.Paul Robinson2015-12-143-2/+182
| | | | | | | | | | | | | | | When FastISel fails to translate an instruction it hands off code generation to SelectionDAG. Before it does so, it may have generated local value instructions to feed phi nodes in successor blocks. These instructions will then be generated again by SelectionDAG, causing duplication and less efficient code, including extra spill instructions. Patch by Wolfgang Pieb! Differential Revision: http://reviews.llvm.org/D11768 llvm-svn: 255520
* K-Ballo pointed out a mistake in the add_lvalue_ref tests I checked in; now ↵Marshall Clow2015-12-141-7/+7
| | | | | | more of them are passing. Thanks llvm-svn: 255519
* Missed this on the previous (255517) commitMarshall Clow2015-12-141-0/+49
| | | | llvm-svn: 255518
* Fix a corner case that involved calling rethrow_if_nested with a type that ↵Marshall Clow2015-12-143-53/+10
| | | | | | had a deleted operator&. Added a test to catch this as well. Thanks to Ville for the heads-up. llvm-svn: 255517
* [Power PC] llvm soft float support for ppc32Petar Jovanovic2015-12-147-8/+82
| | | | | | | | | | | This is the second in a set of patches for soft float support for ppc32, it enables soft float operations. Patch by Strahinja Petrovic. Differential Revision: http://reviews.llvm.org/D13700 llvm-svn: 255516
* [Power PC] add soft float support for ppc32Petar Jovanovic2015-12-145-11/+144
| | | | | | | | | | | | This patch enables soft float support for ppc32 architecture and fixes the ABI for variadic functions. This is the first in a set of patches for soft float support in LLVM. Patch by Strahinja Petrovic. Differential Revision: http://reviews.llvm.org/D13351 llvm-svn: 255515
* Fix broken visual studio builds by disabling KMP_USE_TSX.Jonathan Peyton2015-12-141-1/+2
| | | | | | Visual studio can't handle the asm extension in the KMP_USE_TSX code sections. llvm-svn: 255514
* Add add_lvalue_ref tests for a few function types, with a note why not moreMarshall Clow2015-12-141-0/+36
| | | | llvm-svn: 255513
* AMDGPU: Use generic bitreverse intrinsicMatt Arsenault2015-12-148-37/+143
| | | | | | Also fix bug in vector legalization for bitreverse. llvm-svn: 255512
* getParent() ^ 3 == getModule() ; NFCISanjay Patel2015-12-1416-40/+28
| | | | llvm-svn: 255511
* [Hexagon] Xfail two tests that fail due to over-aligning arraysKrzysztof Parzyszek2015-12-142-0/+9
| | | | llvm-svn: 255510
OpenPOWER on IntegriCloud