- Aug 04, 2015
-
-
Justin Bogner authored
If we don't have sys/wait.h and we're on a unix system there's no way that several of the llvm tools work at all. This includes clang. Just remove the configure and cmake checks entirely - we'll get a build error instead of building something broken now. llvm-svn: 243957
-
Hal Finkel authored
On the code path in ExpandUnalignedLoad which expands an unaligned vector/fp value in terms of a legal integer load of the same size, the ChainResult needs to be the chain result of the integer load. No in-tree test case is currently available. Patch by Jan Hranac! llvm-svn: 243956
-
Adam Nemet authored
This variant of addRuntimeCheck is only used now from the LoopVectorizer which does not use this parameter. llvm-svn: 243955
-
Chen Li authored
Summary: This patch adds enum value for an existing metadata type -- make.implicit. Using preassigned enum will be helpful to get compile time type checking and avoid string construction and comparison. The patch also changes uses of make.implicit from string metadata to enum metadata. There is no functionality change. Reviewers: reames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11698 llvm-svn: 243954
-
Saleem Abdulrasool authored
This adds the software division routines for the Windows RTABI. These are not expected to be used often though as most modern Windows ARM capable targets support hardware division. In the case that the target CPU doesnt support hardware division, this will be the fallback. llvm-svn: 243952
-
Saleem Abdulrasool authored
Make the libcall updating table driven similar to the approach that the Linux and Windows codepath does below. NFC. llvm-svn: 243951
-
Chandler Carruth authored
contained types into the space when we have no contained types. This fixes the UB stemming from a call to memcpy with a null pointer. This also reduces the calls to allocate because this actually happens in a notable client - Clang. Found by UBSan. llvm-svn: 243944
-
Sean Silva authored
Looks like the rebased version that Mehdi committed didn't incorporate the latest changes. Patch by Erik de Castro Lopo <erikd@mega-nerd.com>! llvm-svn: 243942
-
Sanjoy Das authored
This reverts commit r243348 and r243357. They caused PR24347. llvm-svn: 243939
-
Ahmed Bougacha authored
Some are named "FP", others "SD", others still "FP*SD". Rename all this to just use "FP", which, except for conversions (which don't use this format naming scheme), implies "SD" anyway. llvm-svn: 243936
-
Ahmed Bougacha authored
llvm-svn: 243935
-
Chandler Carruth authored
this is the last of them in my build of LLVM. Haven't tried Clang yet. Found via UBSan. llvm-svn: 243934
-
Ahmed Bougacha authored
It's already in SysRegMappings, no need to also have it in MSRMappings: the latter is only used if we didn't find a match in the former. llvm-svn: 243933
-
Chandler Carruth authored
This too was found by UBSan. Down to 35 failures for me. llvm-svn: 243932
-
Ahmed Bougacha authored
llvm-svn: 243931
-
Ahmed Bougacha authored
llvm-svn: 243930
-
Hans Wennborg authored
llvm-svn: 243929
-
Chandler Carruth authored
This happens to work, but is not guaranteed to work. Indeed, most memcpy interfaces in Linux-land annotate these arguments as nonnull, and GCC and LLVM both can and do optimized based upon that. When they do so, they might legitimately have miscompiled code calling this routine with two valid iterators, 'nullptr' and 'nullptr'. There was even code doing precisely this because StringRef().begin() and StringRef().end() both produce null pointers. This was found by UBSan. llvm-svn: 243927
-
Ahmed Bougacha authored
There's a bunch of code in LowerFCOPYSIGN that does smart lowering, and is actually already vector-aware; let's use it instead of scalarizing! The only interesting change is that for v2f32, we previously always used use v4i32 as the integer vector type. Use v2i32 instead, and mark FCOPYSIGN as Custom. llvm-svn: 243926
-
Ahmed Bougacha authored
We used to legalize it like it's any other binary operations. It's not, because it accepts mismatched operand types. Because of that, we used to hit various asserts and miscompiles. Specialize vector legalizations to, in the worst case, unroll, or, when possible, to just legalize the operand that needs legalization. Scalarization isn't covered, because I can't think of a target where some but not all of the 1-element vector types are to be scalarized. llvm-svn: 243924
-
Alex Lorenz authored
llvm-svn: 243923
-
Adam Nemet authored
llvm-svn: 243921
-
Adam Nemet authored
The previous commits moved this functionality into the client. Also remove the now unused member variable. llvm-svn: 243920
-
Mehdi Amini authored
From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 243918
-
Mehdi Amini authored
From: Erik de Castro Lopo <erikd@qti.qualcomm.com> llvm-svn: 243917
-
Mehdi Amini authored
From: Erik de Castro Lopo <erikd@qti.qualcomm.com> llvm-svn: 243916
-
Alex Lorenz authored
Reviewers: Duncan P. N. Exon Smith llvm-svn: 243915
-
Justin Bogner authored
It's better to pass libLTO to ld64 via the command line flag than rely on setting DYLD_LIBRARY_PATH. llvm-svn: 243911
-
David Blaikie authored
llvm-svn: 243910
-
David Blaikie authored
Various value handles needed to be copy constructible and copy assignable (mostly for their use in DenseMap). But to avoid an API that might allow accidental slicing, make these members protected in the base class and make derived classes final (the special members become implicitly public there - but disallowing further derived classes that might be sliced to the intermediate type). Might be worth having a warning a bit like -Wnon-virtual-dtor that catches public move/copy assign/ctors in classes with virtual functions. (suppressable in the same way - by making them protected in the base, and making the derived classes final) Could be fancier and only diagnose them when they're actually called, potentially. Also allow a few default implementations where custom implementations (especially with non-standard return types) were implemented. llvm-svn: 243909
-
Tim Northover authored
llvm-svn: 243907
-
- Aug 03, 2015
-
-
Davide Italiano authored
llvm-svn: 243905
-
Derek Schuff authored
Fixes obvious memory leak in test TestForEofAfterReadFailureOnDataStreamer. Also removes constexpr use from same test. Patch by Karl Schimpf. Differential Revision: http://reviews.llvm.org/D11735 llvm-svn: 243904
-
David Blaikie authored
llvm-svn: 243903
-
Chandler Carruth authored
through PHI nodes across iterations. This patch teaches the new advanced loop unrolling heuristics to propagate constants into the loop from the preheader and around the backedge after simulating each iteration. This lets us brute force solve simple recurrances that aren't modeled effectively by SCEV. It also makes it more clear why we need to process the loop in-order rather than bottom-up which might otherwise make much more sense (for example, for DCE). This came out of an attempt I'm making to develop a principled way to account for dead code in the unroll estimation. When I implemented a forward-propagating version of that it produced incorrect results due to failing to propagate *cost* between loop iterations through the PHI nodes, and it occured to me we really should at least propagate simplifications across those edges, and it is quite easy thanks to the loop being in canonical and LCSSA form. Differential Revision: http://reviews.llvm.org/D11706 llvm-svn: 243900
-
David Blaikie authored
llvm-svn: 243899
-
Renato Golin authored
While checking for the existence of the clang-tools-extra directory, the script was not checking for its destination name, "extra", and the script was failing when re-running without checking out new sources. llvm-svn: 243898
-
David Blaikie authored
Some functions return concrete ByteStreamers by value - explicitly support that in the base class. (dtor can be virtual, no one seems to be polymorphically owning/destroying them) llvm-svn: 243897
-
David Blaikie authored
Recommit r243824: -Wdeprecated-clean: Fix cases of violating the rule of 5 in ways that are deprecated in C++11 This reverts commit r243888, recommitting r243824. This broke the Windows build due to a difference in the C++ standard library implementation. Using emplace/forward_as_tuple should ensure there's no need to copy ValIDs. llvm-svn: 243896
-
Pete Cooper authored
Also converted a cast<> to dyn_cast while i was working on the same line of code. llvm-svn: 243894
-