- Apr 16, 2012
-
-
Duncan Sands authored
llvm-svn: 154851
-
Duncan Sands authored
up to this yet. llvm-svn: 154835
-
Sirish Pande authored
llvm-svn: 154828
-
Duncan Sands authored
llvm-svn: 154824
-
Eli Friedman authored
llvm-svn: 154789
-
- Apr 15, 2012
-
-
Duncan Sands authored
llvm-svn: 154767
-
Richard Smith authored
initialize an array of unsigned char. Outside C++11 mode, this bug was benign, and just resulted in us emitting a constant which was double the required length, padded with 0s. In C++11, it resulted in us generating an array whose first element was something like i8 ptrtoint ([n x i8]* @str to i8). llvm-svn: 154756
-
- Apr 14, 2012
-
-
Duncan Sands authored
thinking of generalizing it to be able to specify other freedoms beyond accuracy (such as that NaN's don't have to be respected). I'd like the 3.1 release (the first one with this metadata) to have the more generic name already rather than having to auto-upgrade it in 3.2. llvm-svn: 154745
-
Richard Smith authored
attached. Since we do not support any attributes which appertain to a statement (yet), testing of this is necessarily quite minimal. Patch by Alexander Kornienko! llvm-svn: 154723
-
- Apr 13, 2012
-
-
John McCall authored
jump into these scopes, and the cleanup-entering code sometimes wants to do some operations first (e.g. a GEP), which can leave us with unparented IR. llvm-svn: 154684
-
Benjamin Kramer authored
llvm-svn: 154678
-
Anton Korobeynikov authored
- Handle unions - Handle C++ classes llvm-svn: 154664
-
Richard Smith authored
GNU __atomic builtins. llvm-svn: 154659
-
John McCall authored
and add a test case. llvm-svn: 154653
-
Richard Smith authored
__atomic_test_and_set, __atomic_clear, plus a pile of undocumented __GCC_* predefined macros. Implement library fallback for __atomic_is_lock_free and __c11_atomic_is_lock_free, and implement __atomic_always_lock_free. Contrary to their documentation, GCC's __atomic_fetch_add family don't multiply the operand by sizeof(T) when operating on a pointer type. libstdc++ relies on this quirk. Remove this handling for all but the __c11_atomic_fetch_add and __c11_atomic_fetch_sub builtins. Contrary to their documentation, __atomic_test_and_set and __atomic_clear take a first argument of type 'volatile void *', not 'void *' or 'bool *', and __atomic_is_lock_free and __atomic_always_lock_free have an argument of type 'const volatile void *', not 'void *'. With this change, libstdc++4.7's <atomic> passes libc++'s atomic test suite, except for a couple of libstdc++ bugs and some cases where libc++'s test suite tests for properties which implementations have latitude to vary. llvm-svn: 154640
-
- Apr 12, 2012
-
-
Douglas Gregor authored
in general (such an atomic has boolean representation) and specifically for IR generation of __c11_atomic_init. The latter also means actually using initialization semantics for this initialization, rather than just creating a store. On a related note, make sure we actually put in non-atomic-to-atomic conversions when performing an implicit conversion sequence. IR generation is far too kind here, but we still want the ASTs to make sense. llvm-svn: 154612
-
Richard Smith authored
This is not quite sufficient for libstdc++'s <atomic>: we still need __atomic_test_and_set and __atomic_clear, and may need a more complete __atomic_is_lock_free implementation. We are also missing an implementation of __atomic_always_lock_free, __atomic_nand_fetch, and __atomic_fetch_nand, but those aren't needed for libstdc++. llvm-svn: 154579
-
Eric Christopher authored
FunctionDecl::Create calls as well. rdar://11079003 llvm-svn: 154578
-
Eric Christopher authored
The mangler doesn't like non-prototyped functions so only use a mangled name for prototyped functions. rdar://11079003 llvm-svn: 154570
-
Eric Christopher authored
so. llvm-svn: 154569
-
- Apr 11, 2012
-
-
Richard Smith authored
<stdatomic.h> header. In passing, fix LanguageExtensions to note that C11 and C++11 are no longer "upcoming standards" but are now actually standardized. llvm-svn: 154513
-
David Chisnall authored
llvm-svn: 154507
-
Eric Christopher authored
an explicit instance variable. rdar://10590352 llvm-svn: 154481
-
- Apr 10, 2012
-
-
Eric Christopher authored
and emit a relatively empty block for a plain break statement. This enables us to track where we went through a switch. PR9796 & rdar://11215207 llvm-svn: 154420
-
Duncan Sands authored
rational number, eg as 2.5 rather than 5, 2. OK'd by Peter Collingbourne. llvm-svn: 154388
-
Eric Christopher authored
llvm-svn: 154384
-
Eric Christopher authored
llvm-svn: 154383
-
- Apr 09, 2012
-
-
David Chisnall authored
llvm-svn: 154327
-
David Chisnall authored
for hooking in code flow visualisation applications. llvm-svn: 154321
-
- Apr 08, 2012
-
-
Chandler Carruth authored
case as we don't currently have any way of dumping target options or otherwise observing this. Another small step toward fixing PR12380. With this we generate TLS accesses using the static model instead of the dynamic model, but we're still generating suboptimal code under the mistaken assumption that the TLS offset might be greater than 2^32, and therefor not viable as an immediate offset of a segment register. llvm-svn: 154298
-
Chandler Carruth authored
First, this patch cleans up the parsing of the PIC and PIE family of options in the driver. The existing logic failed to claim arguments all over the place resulting in kludges that marked the options as unused. Instead actually walk all of the arguments and claim them properly. We now treat -f{,no-}{pic,PIC,pie,PIE} as a single set, accepting the last one on the commandline. Previously there were lots of ordering bugs that could creep in due to the nature of the parsing. Let me know if folks would like weird things such as "-fPIE -fno-pic" to turn on PIE, but disable full PIC. This doesn't make any sense to me, but we could in theory support it. Options that seem to have intentional "trump" status (-static, -mkernel, etc) continue to do so and are commented as such. Next, a -pie-level flag is threaded into the frontend, rigged to a language option, and handled preprocessor, setting up the appropriate defines. We'll now have the correct defines when compiling with -fpie. The one place outside of the preprocessor that was inspecting the PIC level (as opposed to the relocation model, which is set and handled separately, yay!) is in the GNU ObjC runtime. I changed it to exactly preserve existing behavior. If folks want to change its behavior in the face of PIE, they can do that in a separate patch. Essentially the only functionality changed here is the preprocessor defines and bug-fixes to the argument management. Tests have been updated and extended to test all of this a bit more thoroughly. llvm-svn: 154291
-
- Apr 06, 2012
-
-
John McCall authored
global destructor entry. For some reason this isn't enabled for apple-kexts; it'd be good to have documentation for that. Based on a patch by Nakamura Takumi! llvm-svn: 154191
-
John McCall authored
llvm-svn: 154190
-
David Chisnall authored
llvm-svn: 154175
-
Eric Christopher authored
synthesized ones. Reasonable debug info size reduction for objc. rdar://11179756 llvm-svn: 154129
-
- Apr 05, 2012
-
-
Eli Friedman authored
Make the variant of __builtin_shufflevector that takes the shuffle indexes as a vector actually usable. Patch by David Neto. PR12465. llvm-svn: 154128
-
- Apr 04, 2012
-
-
Dan Gohman authored
llvm-svn: 154052
-
David Chisnall authored
Don't crash (assert failure) when generating blocks for C++ types with a non-const copy constructor. This was caused by the code deciding the number of fields in the byref structure using a different test to the part of the code creating the GEPs into said structure. llvm-svn: 154013
-
John McCall authored
patch by Timur Iskhodzhanov. llvm-svn: 153990
-
Ted Kremenek authored
llvm-svn: 153986
-