- May 13, 2013
-
-
Richard Smith authored
llvm-svn: 181679
-
Rafael Espindola authored
llvm-svn: 181678
-
Rafael Espindola authored
This patch renames getLinkage to getLinkageInternal. Only code that needs to handle UniqueExternalLinkage specially should call this. Linkage, as defined in the c++ standard, is provided by getFormalLinkage. It maps UniqueExternalLinkage to ExternalLinkage. Most places in the compiler actually want isExternallyVisible, which handles UniqueExternalLinkage as internal. llvm-svn: 181677
-
Richard Smith authored
optimizations -- in particular, globalopt will remove calls to ::operator new(size_t) that did not come from new-expressions. llvm-svn: 181676
-
Richard Smith authored
type returns a lambda defined within itself. The computation of linkage for the function looked at the linkage of the lambda, and vice versa. This is solved by not checking whether an 'auto' in a function return type deduces to a type with unique external linkage. We don't need this check, because the type deduced for 'auto' doesn't affect whether two otherwise-identical declarations would name different functions, so we don't need to give an ostensibly external-linkage function internal linkage for this reason. (We also don't need unique-external linkage in C++11 onwards at all, but that's not implemented yet.) llvm-svn: 181675
-
Nadav Rotem authored
The external user does not have to be in lane #0. We have to save the lane for each scalar so that we know which vector lane to extract. llvm-svn: 181674
-
Nadav Rotem authored
SLPVectorizer: Clear the map that maps between scalars to vectors after each round of vectorization. Testcase in the next commit. llvm-svn: 181673
-
- May 12, 2013
-
-
David Blaikie authored
llvm-svn: 181672
-
Richard Smith authored
inefficient; we perform a linear scan of switch labels to find the one matching the condition, and then walk the body looking for that label. Both parts should be straightforward to optimize. llvm-svn: 181671
-
Richard Smith authored
completes the implementation of N3638. llvm-svn: 181669
-
David Majnemer authored
There are two transforms in visitUrem that conflict with each other. *) One, if a divisor is a power of two, subtracts one from the divisor and turns it into a bitwise-and. *) The other unwraps both operands if they are surrounded by zext instructions. Flipping the order allows the subtraction to go beneath the sign extension. llvm-svn: 181668
-
Arnold Schwaighofer authored
Use the widest induction type encountered for the cannonical induction variable. We used to turn the following loop into an empty loop because we used i8 as induction variable type and truncated 1024 to 0 as trip count. int a[1024]; void fail() { int reverse_induction = 1023; unsigned char forward_induction = 0; while ((reverse_induction) >= 0) { forward_induction++; a[reverse_induction] = forward_induction; --reverse_induction; } } radar://13862901 llvm-svn: 181667
-
Arnold Schwaighofer authored
No functionality change intended. llvm-svn: 181666
-
Arnold Schwaighofer authored
No functionality change intended. llvm-svn: 181665
-
- May 11, 2013
-
-
David Blaikie authored
(review feedback on r181632 from Dmitri) llvm-svn: 181664
-
Benjamin Kramer authored
llvm-svn: 181663
-
Benjamin Kramer authored
Adding attributes to a uniqued set has become expensive, don't do it more often than necessary. No functionality change. llvm-svn: 181662
-
David Majnemer authored
Use isKnownToBeAPowerOfTwo in visitUrem so that we may more aggressively fold away urem instructions. llvm-svn: 181661
-
Simon Atanasyan authored
llvm-svn: 181660
-
Richard Smith authored
we loaded from PCH, if we're building another PCH, create an update record to patch the return type of the earlier declaration. llvm-svn: 181659
-
Jason Molenda authored
names when specifying the DynamicLoaderDarwinKernel. ProcessGDBRemote wasn't setting the dyld string any more; remove the remaining code tracking the dyld plugin name altogether from that process plugin. llvm-svn: 181658
-
Rafael Espindola authored
To add a frame now there is a dedicated addFrameMove which also takes care of constructing the move itself. llvm-svn: 181657
-
Rafael Espindola authored
llvm-svn: 181656
-
Rui Ueyama authored
llvm-svn: 181655
-
Reed Kotler authored
not think it can support small data sections. llvm-svn: 181654
-
Jason Molenda authored
Don't want about being unable to find a needed objective-c runtime function when we're core file debugging and can't jit anything anyway. Don't warn when quitting a debug session on a core file, the program state can be reconstructed by re-running lldb on the same core file again. llvm-svn: 181653
-
Rui Ueyama authored
llvm-svn: 181652
-
rdar://problem/13700260Greg Clayton authored
Avoid a deadlock when using the OperatingSystemPython code and typing "process interrupt". There was a possible lock inversion between the target API lock and the process' thread list lock due to code trying to discard the thread list. This was fixed by adding a boolean to Process::Halt() that indicates if the thread plans should be discarded and doing it in the private state thread when we process the stopped state. llvm-svn: 181651
-
David Blaikie authored
Eric's code review feedback to r181644 llvm-svn: 181650
-
Rafael Espindola authored
llvm-svn: 181649
-
Nadav Rotem authored
For example: bar() { int a = A[i]; int b = A[i+1]; B[i] = a; B[i+1] = b; foo(a); <--- a is used outside the vectorized expression. } llvm-svn: 181648
-
Nadav Rotem authored
llvm-svn: 181647
-
Nadav Rotem authored
llvm-svn: 181646
-
Matt Kopec authored
Use mangled and demangled names when checking for a function in a namespace and a function in an anonymous namespace, respectively. llvm-svn: 181645
-
David Blaikie authored
We could support the GCC extension DW_TAG_GNU_template_parameter_pack if we're feeling adventurous, at some point - but I don't think GDB's doing anything useful with it yet anyway. llvm-svn: 181644
-
Douglas Gregor authored
[Modules] Make r180934 more efficient by only loading top-level module maps in system header directories. llvm-svn: 181643
-
Reed Kotler authored
mips16/mips32 floating point interoperability. This patch fixes returns from mips16 functions so that if the function was in fact called by a mips32 hard float routine, then values that would have been returned in floating point registers are so returned. Mips16 mode has no floating point instructions so there is no way to load values into floating point registers. This is needed when returning float, double, single complex, double complex in the Mips ABI. Helper functions in libc for mips16 are available to do this. For efficiency purposes, these helper functions have a different calling convention from normal Mips calls. Registers v0,v1,a0,a1 are used to pass parameters instead of a0,a1,a2,a3. This is because v0,v1,a0,a1 are the natural registers used to return floating point values in soft float. These values can then be moved to the appropriate floating point registers with no extra cost. The only register that is modified is ra in this call. The helper functions make sure that the return values are in the floating point registers that they would be in if soft float was not in effect (which it is for mips16, though the soft float is implemented using a mips32 library that uses hard float). llvm-svn: 181641
-
Rui Ueyama authored
llvm-svn: 181640
-
Jordan Rose authored
Previously, BitstreamCursor read an abbreviated record by splatting the whole thing into a data vector, then extracting and removing the /first/ element. Now, it reads the first element--the record code--separately from the actual field values. No (intended) functionality change. llvm-svn: 181639
-
Douglas Gregor authored
Sometimes people hack on their system headers. In such cases, they'll need to delete their module cache, but may not know where it is. Add a note to show them where it is. llvm-svn: 181638
-