summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Support] Disable SaturatingMultiply() unit test while investigatingNathan Slingerland2015-11-191-19/+0
| | | | | | | | Ubsan detected undefined behavior in the MathExtras SaturatingMultiply test. This change disables the test while it is being investigated. llvm-svn: 253539
* I like how PlatformAndroid/PlatformLinux log when their platformsJason Molenda2015-11-198-0/+194
| | | | | | | try to CreateInstance, and log the results. I copied that for the Mac platforms. llvm-svn: 253538
* Pass the ExecutionContext as well, since it is actually usefulEnrico Granata2015-11-193-0/+5
| | | | llvm-svn: 253537
* Fix bug 25440: GVN assertion after coercing loadsWeiming Zhao2015-11-192-1/+120
| | | | | | | | | | | | | | | | Optimizations like LoadPRE in GVN will insert new instructions. If the insertion point is in a already processed BB, they should get a value number explicitly. If the insertion point is after current instruction, then just leave it. However, current GVN framework has no support for it. In this patch, we just bail out if a VN can't be found. Dfferential Revision: http://reviews.llvm.org/D14670 A test/Transforms/GVN/pr25440.ll M lib/Transforms/Scalar/GVN.cpp llvm-svn: 253536
* [coroutines] Tweak diagnostics to always use fully-qualified name for ↵Richard Smith2015-11-193-4/+15
| | | | | | std::coroutine_traits. llvm-svn: 253535
* Don't actually add the __unsafe_unretained qualifier in MRC;John McCall2015-11-198-7/+275
| | | | | | | | | | | driving a canonical difference between that and an unqualified type is a really bad idea when both are valid. Instead, remember that it was there in a non-canonical way, then look for that in the one place we really care about it: block captures. The net effect closely resembles the behavior of a decl attribute, except still closely following ARC's standard qualifier parsing rules. llvm-svn: 253534
* Fix the emission of ARC-style ivar layouts in the fragile runtimeJohn McCall2015-11-192-5/+24
| | | | | | | | | to start at the offset of the first ivar instead of the rounded-up end of the superclass. The latter could include a large amount of tail padding because of a highly-aligned ivar, and subclass ivars can be laid out within that. llvm-svn: 253533
* [analyzer] Improve modeling of static initializers.Anna Zaks2015-11-192-5/+18
| | | | | | | | | | | | Conversions between unrelated pointer types (e.g. char * and void *) involve bitcasts which were not properly modeled in case of static initializers. The patch fixes this problem. The problem was originally spotted by Artem Dergachev. Patched by Yuri Gribov! Differential Revision: http://reviews.llvm.org/D14652 llvm-svn: 253532
* Allow the language plugins a say in how the function name is rendered as ↵Enrico Granata2015-11-193-141/+223
| | | | | | part of frame formatting llvm-svn: 253531
* [msan] Don't unpoison phdrs on dlopen(NULL, 0)Reid Kleckner2015-11-192-4/+22
| | | | | | | | | | | | | | | | | | | Summary: dlopen(NULL, ...) is intended to give you back a handle to the executable for use with dlsym. Casting it to link_map and using it with ForEachMappedRegion results in a crash. We also shouldn't unpoison the globals of a DSO that is already in memory. This ensures that we don't do it for the executable, but in general, MSan may have false negatives if the DSO is already loaded. Reviewers: eugenis Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14795 llvm-svn: 253530
* Fix UMR in llvm-nm on IR object files in printDarwinSymbolReid Kleckner2015-11-191-5/+4
| | | | llvm-svn: 253529
* [X86] Enable shrink-wrapping by default.Quentin Colombet2015-11-192-1/+6
| | | | | | | | Differential Revision: http://reviews.llvm.org/D14156 rdar://problem/21118279 llvm-svn: 253528
* Fix several long lines (>80) in LoopVectorize.cpp. NFC.Cong Hou2015-11-191-13/+19
| | | | llvm-svn: 253527
* Don't search for third party libraries while using MSanReid Kleckner2015-11-191-0/+6
| | | | | | | | | | | | On the average user's system, those libraries will not be compiled with MSan. Prior to this change, the LLVM test suite was full of false positives from calls from third party libraries to MSan interceptors like strlen. We can remove this check if MSan ever grows a suppression mechanism similar to TSan's. llvm-svn: 253526
* Disable Go bindings test with MSan, it has tons of linker errorsReid Kleckner2015-11-192-1/+3
| | | | llvm-svn: 253525
* Initialize PersistentId for HandleSDNode, as these will never be inserted ↵Reid Kleckner2015-11-191-0/+3
| | | | | | into the DAG llvm-svn: 253524
* [MS ABI] Let arbitrary entities participate in vftable orderingDavid Majnemer2015-11-192-6/+25
| | | | | | | | | | | In the Microsoft ABI, the vftable is laid out in the order in the declaration order of the entities defined within it. Obviously, only virtual methods end up in the vftable but they will be placed into the table at the same position as the first entity with the same name. llvm-svn: 253523
* Update "Getting Started" document.Rui Ueyama2015-11-181-2/+2
| | | | llvm-svn: 253522
* [SimplifyLibCalls] New trick: pow(x, 0.5) -> sqrt(x) under -ffast-math.Davide Italiano2015-11-182-2/+24
| | | | | | Differential Revision: http://reviews.llvm.org/D14466 llvm-svn: 253521
* [AArch64] Enable shrink-wrapping by default.Quentin Colombet2015-11-182-1/+6
| | | | | | | | Differential Revision: http://reviews.llvm.org/D14360 rdar://problem/20820748 llvm-svn: 253520
* Fix debian build after r253512.Pete Cooper2015-11-181-3/+4
| | | | | | | | | | | The conversion from QuantityType to the (temporary) IntegerAlignment class was ambiguous. For now add in explicit conversion to unsigned to satisfy the clang-x86_64-debian-fast bot. I'll remove the explicit conversion when I remove the IntegerAlignment class. llvm-svn: 253519
* Fix returned value for GVN: could return "false" even after modifying the IRMehdi Amini2015-11-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | This bug would manifest in some very specific cases where all the following conditions are fullfilled: - GVN didn't remove block - The regular GVN iteration didn't change the IR - PRE is enabled - PRE will not split critical edge - The last instruction processed by PRE didn't change the IR Because the CallGraph PassManager relies on this returned value to decide if it needs to recompute a node after the execution of Function passes, not returning the right value can lead to unexpected results. Fix for: https://llvm.org/bugs/show_bug.cgi?id=24715 Patch by Wenxiang Qiu <vincentqiuuu@gmail.com> From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 253518
* [CMake] Support -fvisibility-inlines-hidden when LLVM_ENABLE_PIC=OffChris Bieneman2015-11-181-7/+6
| | | | | | I'm unaware of any reasons why -fvisibility-inlines-hidden would depend on PIC, and since autoconf supports this flag without PIC, we should support it in CMake too. llvm-svn: 253517
* [analyzer] Skip checking blocks in dependent contexts.Devin Coughlin2015-11-182-3/+21
| | | | | | | | | | | Since we don't check functions in dependent contexts, we should skip blocks in those contexts as well. This avoids an assertion failure when the DeadStoresChecker attempts to evaluate an array subscript expression with a dependent name type. rdar://problem/23564220 llvm-svn: 253516
* Minor cleanups (from review feedback)Xinliang David Li2015-11-182-6/+9
| | | | | | | | 1. remove uneeded header inclusion 2. use reinterpret_cast instead of c ctyle 3. other format change llvm-svn: 253515
* [BuildLibCalls] EmitStrNLen() is dead code. Garbage collect.Davide Italiano2015-11-181-26/+0
| | | | llvm-svn: 253514
* Remove superseded buildSwigWrapperClasses.py and buildSwigPython.py classesTodd Fiala2015-11-183-1234/+1
| | | | | | | This closes: http://reviews.llvm.org/D14783 llvm-svn: 253513
* Change memcpy/memset/memmove to have dest and source alignments.Pete Cooper2015-11-1864-284/+284
| | | | | | | | | | | | | | | | | | | | | | This is a follow on from a similar LLVM commit: r253511. Note, this was reviewed (and more details are in) http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/312083.html These intrinsics currently have an explicit alignment argument which is required to be a constant integer. It represents the alignment of the source and dest, and so must be the minimum of those. This change allows source and dest to each have their own alignments by using the alignment attribute on their arguments. The alignment argument itself is removed. The only code change to clang is hidden in CGBuilder.h which now passes both dest and source alignment to IRBuilder, instead of taking the minimum of dest and source alignments. Reviewed by Hal Finkel. llvm-svn: 253512
* Change memcpy/memset/memmove to have dest and source alignments.Pete Cooper2015-11-18294-1653/+1820
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note, this was reviewed (and more details are in) http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/312083.html These intrinsics currently have an explicit alignment argument which is required to be a constant integer. It represents the alignment of the source and dest, and so must be the minimum of those. This change allows source and dest to each have their own alignments by using the alignment attribute on their arguments. The alignment argument itself is removed. There are a few places in the code for which the code needs to be checked by an expert as to whether using only src/dest alignment is safe. For those places, they currently take the minimum of src/dest alignments which matches the current behaviour. For example, code which used to read: call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, i32 500, i32 8, i1 false) will now read: call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %dest, i8* align 8 %src, i32 500, i1 false) For out of tree owners, I was able to strip alignment from calls using sed by replacing: (call.*llvm\.memset.*)i32\ [0-9]*\,\ i1 false\) with: $1i1 false) and similarly for memmove and memcpy. I then added back in alignment to test cases which needed it. A similar commit will be made to clang which actually has many differences in alignment as now IRBuilder can generate different source/dest alignments on calls. In IRBuilder itself, a new argument was added. Instead of calling: CreateMemCpy(Dst, Src, getInt64(Size), DstAlign, /* isVolatile */ false) you now call CreateMemCpy(Dst, Src, getInt64(Size), DstAlign, SrcAlign, /* isVolatile */ false) There is a temporary class (IntegerAlignment) which takes the source alignment and rejects implicit conversion from bool. This is to prevent isVolatile here from passing its default parameter to the source alignment. Note, changes in future can now be made to codegen. I didn't change anything here, but this change should enable better memcpy code sequences. Reviewed by Hal Finkel. llvm-svn: 253511
* Fix format in comments.Xinliang David Li2015-11-181-9/+12
| | | | llvm-svn: 253510
* [doc] fix a wrong linkJingyue Wu2015-11-181-1/+1
| | | | llvm-svn: 253509
* [PGO] Minor cleanups (formating, comments etc) (NFC)Xinliang David Li2015-11-182-47/+61
| | | | | | | | | 1. Added missing public API decl in InstrProfiling.h 2. Clang formatting fix 3. Added more comments for new VP code 4. refactor the VP allocation code to make it more readable. llvm-svn: 253508
* Removing memory leak to appease windows bots.Mike Aizatsky2015-11-181-5/+8
| | | | | | Differential Revision: http://reviews.llvm.org/D14785 llvm-svn: 253507
* [MSVC Compat] Make -Wmicrosoft-cast not an error by defaultDavid Majnemer2015-11-182-5/+3
| | | | | | Too much code is sloppy about this to error by default. llvm-svn: 253506
* [TestExitDuringStep] Adjust after a recent type map change.Siva Chandra2015-11-181-1/+2
| | | | | | | | | | Reviewers: zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D14784 llvm-svn: 253505
* [DAGCombiner] Vector constant folding for comparisonsSimon Pilgrim2015-11-185-2189/+255
| | | | | | | | | | This patch adds support for vector constant folding of integer/float comparisons. This requires FoldConstantVectorArithmetic to support scalar constant operands (in this case ISD::CONDCASE). In future we should be able to support other scalar constant types as necessary (and possibly start calling FoldConstantVectorArithmetic for all node creations) Differential Revision: http://reviews.llvm.org/D14683 llvm-svn: 253504
* Fix format of previous patch (NFC)Xinliang David Li2015-11-183-17/+19
| | | | llvm-svn: 253503
* ARM: make sure backend is consistent about exception handling method.Tim Northover2015-11-185-6/+17
| | | | | | | | | | | | It turns out we decide whether to use SjLj exceptions or some alternative in two separate places in the backend, and they disagreed with each other. This led to inconsistent code and is generally a terrible idea. So make them consistent and add an assert that they *do* match (unfortunately MCAsmInfo isn't available in opt, so it can't be used to initialise the CodeGen version directly). llvm-svn: 253502
* Fix CMake dependency on lldb.pyZachary Turner2015-11-181-1/+1
| | | | llvm-svn: 253501
* [PGO] Refactor File and Buffer API profile writing codeXinliang David Li2015-11-185-112/+120
| | | | | | | | | With this change, Buffer API and File API implementations are unified. Differential Revision: http://reviews.llvm.org/D14692 llvm-svn: 253500
* Disable gvn non-local speculative loads under asan.Mike Aizatsky2015-11-181-0/+21
| | | | | | | | Summary: Fix for https://llvm.org/bugs/show_bug.cgi?id=25550 Differential Revision: http://reviews.llvm.org/D14764 llvm-svn: 253499
* Disable gvn non-local speculative loads under asan.Mike Aizatsky2015-11-182-0/+61
| | | | | | | | Summary: Fix for https://llvm.org/bugs/show_bug.cgi?id=25550 Differential Revision: http://reviews.llvm.org/D14763 llvm-svn: 253498
* [llvm-profdata] Add SaturatingAdd/SaturatingMultiply Helper Functions (2nd try)Nathan Slingerland2015-11-185-9/+97
| | | | | | | | | | | | | Summary: This change adds MathExtras helper functions for handling unsigned, saturating addition and multiplication. It also updates the instrumentation and sample profile merge implementations to use them. Reviewers: dnovillo, bogner, davidxl Subscribers: davidxl, llvm-commits Differential Revision: http://reviews.llvm.org/D14720 llvm-svn: 253497
* Fix for loop initial decl used outside c99 mode errorXinliang David Li2015-11-181-9/+15
| | | | llvm-svn: 253496
* [Sema] Don't work around a malformed ASTDavid Majnemer2015-11-182-3/+11
| | | | | | | | | | | | We created a malformed TemplateSpecializationType: it was dependent but had a RecordType as it's canonical type. This would lead getAs to crash. r249090 worked around this but we should fix this for real by providing a more appropriate template specialization type as the canonical type. This fixes PR24246. llvm-svn: 253495
* [OperandBundles] Address review on r253446; NFCSanjoy Das2015-11-181-5/+5
| | | | | | Post-commit review by David Blaikie, thanks David! llvm-svn: 253494
* Reapply r253423 and r253424 (which cleanup the data formatters iteration ↵Enrico Granata2015-11-1814-917/+231
| | | | | | model, as well as the type X list commands), along with a change by Zachary Turner to bypass a MSVC bug with SFINAE llvm-svn: 253493
* [PGO] Fix the build failures due to 253483 and 253489.Betul Buyukkurt2015-11-181-4/+2
| | | | llvm-svn: 253492
* Remove the scripts/Python/build-swig-Python.sh script.Todd Fiala2015-11-181-378/+0
| | | | | | This logically goes with my previous commit. llvm-svn: 253491
* remove defunct scripts/build-swig-wrapper-classes.sh; switch autoconf build ↵Todd Fiala2015-11-182-153/+2
| | | | | | | | to prepare_bindings.py. Xcode moved off of build-swig-wrapper-classes.sh earlier this week. llvm-svn: 253490
OpenPOWER on IntegriCloud