- Feb 11, 2014
-
-
Manman Ren authored
This function adds an extra path argument to lto_module_create_from_memory. The path argument will be passed to makeBuffer to make sure the MemoryBuffer has a name and the created module has a module identifier. This is mainly for emitting warning messages from the linker. When we emit warning message on a module, we can use the module identifier. rdar://15985737 llvm-svn: 201114
-
- Feb 10, 2014
-
-
Rafael Espindola authored
A const ObjectFile needs to be able to provide its name. For an IRObjectFile, that means being able to call the mangler. Since each IRObjectFile can have a different mangling, it is natural for them to contain a Mangler which is therefore also const. llvm-svn: 201113
-
Ana Pazos authored
Replaced cast and vreinterepret operations with code to reinterpret bitwise the types float16_t and int16_t. llvm-svn: 201112
-
Reid Kleckner authored
Patch by Brad King! llvm-svn: 201111
-
Rafael Espindola authored
llvm-svn: 201110
-
Rafael Espindola authored
llvm-svn: 201109
-
Rafael Espindola authored
llvm-svn: 201108
-
Matt Arsenault authored
Truncation is just accessing a subregister for any multiple of the register size, so it's free. llvm-svn: 201107
-
Richard Smith authored
llvm-svn: 201106
-
David Majnemer authored
Introduce a notion of a 'current representation method' for pointers-to-members. When starting out, this is set to 'best case' (representation method is chosen by examining the class, selecting the smallest representation that would work given the class definition or lack thereof). This pragma allows the translation unit to dictate exactly what representation to use, similar to how the inheritance model keywords operate. N.B. PCH support is forthcoming. Differential Revision: http://llvm-reviews.chandlerc.com/D2723 llvm-svn: 201105
-
Chandler Carruth authored
The crux of the issue is that LCSSA doesn't preserve stateful alias analyses. Before r200067, LICM didn't cause LCSSA to run in the LTO pass manager, where LICM runs essentially without any of the other loop passes. As a consequence the globalmodref-aa pass run before that loop pass manager was able to survive the loop pass manager and be used by DSE to eliminate stores in the function called from the loop body in Adobe-C++/loop_unroll (and similar patterns in other benchmarks). When LICM was taught to preserve LCSSA it had to require it as well. This caused it to be run in the loop pass manager and because it did not preserve AA, the stateful AA was lost. Most of LLVM's AA isn't stateful and so this didn't manifest in most cases. Also, in most cases LCSSA was already running, and so there was no interesting change. The real kicker is that LCSSA by its definition (injecting PHI nodes only) trivially preserves AA! All we need to do is mark it, and then everything goes back to working as intended. It probably was blocking some other weird cases of stateful AA but the only one I have is a 1000-line IR test case from loop_unroll, so I don't really have a good test case here. Hopefully this fixes the regressions on performance that have been seen since that revision. llvm-svn: 201104
-
rdar://problem/15996848Han Ming Ong authored
Made sure we pass along the file action paths for stdin/stdout/stderr to the XPC service. [Reviewed by Greg Clayton] llvm-svn: 201103
-
David Majnemer authored
Create a new diagnostic, -Wignored-pragmas and use it to handle any case where a pragma would have a side effect but is ignored. llvm-svn: 201102
-
Marshall Clow authored
Fix for PR17606 - result_of (and INVOKE) works incorrectly for member function pointers with ref qualifiers. Also a drive-by fix for common_type in C++03 mode. Thanks to Michel Morin for the bug report and the proposed fix. llvm-svn: 201101
-
Richard Smith authored
llvm-svn: 201100
-
David Majnemer authored
No functional change, this code was just superfluous. llvm-svn: 201099
-
Hans Wennborg authored
This fixes the oversight from r159077. llvm-svn: 201098
-
Tom Stellard authored
DS instructions that access local memory can only uses addresses that are less than or equal to the value of M0. When M0 is uninitialized, then we experience undefined behavior. This patch also changes the behavior to emit S_WQM_B64 on pixel shaders no matter what kind of DS instruction is used. llvm-svn: 201097
-
Tom Stellard authored
This doesn't change any functionality, since we only have two shader types (compute and pixel) that use local memory. We're just changing the logic to match the documentation. llvm-svn: 201096
-
David Blaikie authored
Thanks to Chandler for the catch. llvm-svn: 201095
-
Tim Northover authored
Now that both ARM backends use the same implementation for vshll operations, the code can be shared. This is also a necessary LLVM/Clang interface update. llvm-svn: 201094
-
Tim Northover authored
Similarly to the vshrn instructions, these are simple zext/sext + trunc operations. Using normal LLVM IR should allow for better code, and more sharing with the AArch64 backend. llvm-svn: 201093
-
Saleem Abdulrasool authored
Although the interface to el_push should be a constant parameter (as it is on Darwin), certain Linux distributions currently ship a header which does not provide proper const correctness. This causes compilation failures on Linux. Strip the constness on the parameter, which whilst incorrect, is mostly harmless. The parameter will not be changed by the interface and so it is acceptable to do this. When distributions have updated to a more correct declaration, it would be nice to revert this change. Addresses PR18784. llvm-svn: 201092
-
Chad Rosier authored
llvm-svn: 201091
-
Oliver Stannard authored
For A- and R-class processors, r12 is not normally callee-saved, but is for interrupt handlers. See AAPCS, 5.3.1.1, "Use of IP by the linker". llvm-svn: 201089
-
Benjamin Kramer authored
llvm-svn: 201088
-
Benjamin Kramer authored
llvm-svn: 201087
-
Tim Northover authored
Now the backend supports the natural LLVM IR, we can shamelessly steal the AArch64 front-end code to implement the vshrn intrinsic on 32-bit ARM. llvm-svn: 201086
-
Tim Northover authored
vshrn is just the combination of a right shift and a truncate (and the limits on the immediate value actually mean the signedness of the shift doesn't matter). Using that representation allows us to get rid of an ARM-specific intrinsic, share more code with AArch64 and hopefully get better code out of the mid-end optimisers. llvm-svn: 201085
-
Evgeniy Stepanov authored
This change adds a copy of <ucontext.h> for Android found in google-breakpad that is missing from the official NDK. ASan SEGV handler is still disabled by default and can be enabled with ASAN_OPTIONS=handle_segv. llvm-svn: 201084
-
Robert Lougher authored
llvm-svn: 201083
-
Dmitri Gribenko authored
llvm-svn: 201082
-
Matheus Almeida authored
llvm-svn: 201081
-
Matheus Almeida authored
the addition of Mips64 tests. No functional changes. llvm-svn: 201080
-
NAKAMURA Takumi authored
llvm-svn: 201079
-
Matheus Almeida authored
This way it's possible to share the instruction's description for LSA and DLSA (to be added). No functional changes. llvm-svn: 201078
-
NAKAMURA Takumi authored
llvm-svn: 201077
-
NAKAMURA Takumi authored
The CMake install(DIRECTORY) command documents that it sets permissions on directories it is asked to install. Since the <prefix>/include directory may not be exclusive to the LLVM/Clang installation, we should not ask CMake to manage permissions of that directory for us. Instead, give only our own include/clang and include/clang-c subdirectories to the install(DIRECTORY) command. Fixes PR4500. Patch by Brad King. llvm-svn: 201076
-
NAKAMURA Takumi authored
The CMake install(DIRECTORY) command documents that it sets permissions on directories it is asked to install. Since the <prefix>/include directory may not be exclusive to the LLVM installation, we should not ask CMake to manage permissions of that directory for us. Instead, give only our own include/llvm and include/llvm-c subdirectories to the install(DIRECTORY) command. Fixes PR4500. Patch by Brad King. llvm-svn: 201075
-
Evgeniy Stepanov authored
llvm-svn: 201074
-