summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Correct PPC FRAMEADDR lowering using a pseudo-registerHal Finkel2013-03-216-9/+97
| | | | | | | | | | | | | | | | The old code used to lower FRAMEADDR tried to replicate the logic in the real frame-lowering code that determines whether or not the frame pointer (r31) will be used. When it seemed as through the frame pointer would not be used, the stack pointer (r1) was used instead. Unfortunately, because the stack size is not yet known, this does not work. Instead, this change introduces new always-reserved pseudo-registers (FP and FP8) that are replaced during prologue insertion with the real frame-pointer register (either r1 or r31). It is important that this intrinsic always return a valid frame address because it is used by Clang to store the frame address as part of code generation for __builtin_setjmp. llvm-svn: 177653
* Avoid NEON SP-FP unless unsafe-math or DarwinRenato Golin2013-03-2112-20/+143
| | | | | | | | | | NEON is not IEEE 754 compliant, so we should avoid lowering single-precision floating point operations with NEON unless unsafe-math is turned on. The equivalent VFP instructions are IEEE 754 compliant, but in some cores they're much slower, so some archs/OSs might still request it to be on by default, such as Swift and Darwin. llvm-svn: 177651
* Update some EH tests that were violating the new EH model.Bill Wendling2013-03-213-6/+16
| | | | | | | The landingpad instruction needs to be the first non-PHI instruction in the unwind destination block. llvm-svn: 177650
* [analyzer] Print return values from debug.DumpCalls checker.Jordan Rose2013-03-211-1/+23
| | | | | | Debug utility only, no functionality change. llvm-svn: 177649
* tsan: better reporting of thread leaksDmitry Vyukov2013-03-218-11/+76
| | | | | | | 1. do not report running threads as leaks 2. aggregate leaked threads by creation stack llvm-svn: 177647
* The outline of the stepping perf test case, doesn't do anything yet.Jim Ingham2013-03-213-17/+313
| | | | llvm-svn: 177646
* Add failing test caseTobias Grosser2013-03-211-0/+22
| | | | llvm-svn: 177645
* Do not canonicalize indvars with scev based codegenTobias Grosser2013-03-211-1/+4
| | | | | | | Scev code generation can now handle scops with non canonical induction variables. Hence there is no need to introduce canonical ones any more. llvm-svn: 177644
* Remove last uses of canoncial induction variable when scev code generatingTobias Grosser2013-03-2112-13/+68
| | | | | | | | We now detect scops without a canonical induction variable and can generate a polyhedral representation for them. There was no modification necessary to code generate these scops. llvm-svn: 177643
* TempScop: Make assert more descriptiveTobias Grosser2013-03-211-1/+1
| | | | llvm-svn: 177642
* tsan: better reporting for races on vptrDmitry Vyukov2013-03-218-4/+79
| | | | | | explicitly say "ctor/dtor vs virtual call" llvm-svn: 177640
* tsan: add flag to control symbolizer flush frequencyDmitry Vyukov2013-03-213-7/+15
| | | | llvm-svn: 177638
* tsan: intercept abort() to fflush() libc streamsDmitry Vyukov2013-03-213-0/+9
| | | | llvm-svn: 177637
* tsan: remove bogus CHECKDmitry Vyukov2013-03-211-1/+0
| | | | | | Asynchronous signal (e.g. SIGABRT) can be received with any value of in_rtl. llvm-svn: 177636
* Better block comment formatting.Alexander Kornienko2013-03-212-42/+73
| | | | | | | | | | | | | | | | | Summary: 1. When splitting one-line block comment, use indentation and *s. 2. Remove trailing whitespace from all lines of a comment, not only the ones being splitted. 3. Add backslashes for all lines if a comment is used insed a preprocessor directive. Reviewers: djasper Reviewed By: djasper CC: cfe-commits, klimek Differential Revision: http://llvm-reviews.chandlerc.com/D557 llvm-svn: 177635
* [ASan] Switch ASan to generic ThreadRegistry from sanitizer_common. Delete ↵Alexey Samsonov2013-03-2119-294/+203
| | | | | | ASan-specific AsanThreadRegistry. llvm-svn: 177634
* [ASan] Let the users to invoke `clang -fsanitize=address` to link binaries ↵Alexander Potapenko2013-03-211-8/+10
| | | | | | targeting the iOS simulator. llvm-svn: 177633
* Hoist the definition of getTypeSizeInBits to be inlinable and in theChandler Carruth2013-03-212-41/+45
| | | | | | | | | | | | | | | | | | header. This method is called in the hot path for *many* passes, SROA is what caught my interest. A common pattern is that which branch of the switch should be taken is known in the callsite and so it is a very good candidate for inlining and simplification. Moving it into the header allows the optimizer to fold a lot of boring, repeatitive code in callers of this routine. I'm seeing pretty significant speedups in parts of SROA and I suspect other passes will see similar speedups if they end up working with type sizes frequently. I've not seen any significant growth of the binaries as a consequence, but let me know if you see anything suspicious here. llvm-svn: 177632
* [SROA] Prefix names using a custom IRBuilder inserter.Chandler Carruth2013-03-211-88/+108
| | | | | | | | | | | | | | | | | | | The key part of this is ensuring that name prefixes remain in a Twine form until we get to a point where we can nuke them under NDEBUG. This is tricky using the old APIs as they played fast and loose with Twine, which is prone to serious error. The inserter is much cleaner as it is actually in the call stack leading to the setName call, and so has a good opportunity to prepend the prefix. This matters more than you might imagine because most runs over an alloca find a single partition, and rewrite 3 or 4 instructions referring to it. As a consequence doing this lazily and exclusively with Twine allows the optimizer to delete more of it and shaves another 2% to 3% off of the release build's SROA run time for PR15412. I also think the APIs are cleaner, and the use of Twine is more reliable, so I consider it a win-win despite the churn required to reach this state. llvm-svn: 177631
* [msan] Add an option to disable poisoning of shadow for undef values.Evgeniy Stepanov2013-03-211-2/+13
| | | | llvm-svn: 177630
* tsan: flush symbolizer cache if not symbolized for more than 5 secondsDmitry Vyukov2013-03-213-4/+19
| | | | llvm-svn: 177629
* tsan: add a comment about magic numbersDmitry Vyukov2013-03-211-0/+3
| | | | llvm-svn: 177628
* tsan: use a single background thread for memory profiler and memory flush ↵Dmitry Vyukov2013-03-213-43/+52
| | | | | | (and later for symbolizer flush) llvm-svn: 177627
* Fix a typo.Bob Wilson2013-03-212-3/+3
| | | | llvm-svn: 177626
* Add correct file headers to all source files.Greg Clayton2013-03-2115-56/+80
| | | | llvm-svn: 177625
* Add a new method GetFunctionAddressAndSizeVector to DWARFCallFrameInfo.Jason Molenda2013-03-213-3/+71
| | | | | | | | | | | | | | | | | | | | | | | This returns a vector of <file address, size> entries for all of the functions in the module that have an eh_frame FDE. Update ObjectFileMachO to use the eh_frame FDE function addresses if the LC_FUNCTION_STARTS section is missing, to fill in the start addresses of any symbols that have been stripped from the binary. Generally speaking, lldb works best if it knows the actual start address of every function in a module - it's especially important for unwinding, where lldb inspects the instructions in the prologue of the function. In a stripped binary, it is deprived of this information and it reduces the quality of our unwinds and saved register retrieval. Other ObjectFile users may want to use the function addresses from DWARFCallFrameInfo to fill in any stripped symbols like ObjectFileMachO does already. <rdar://problem/13365659> llvm-svn: 177624
* Modify code to adhere to LLDB coding conventions.Greg Clayton2013-03-2110-166/+192
| | | | llvm-svn: 177623
* simplify-libcalls: Removed unused variableMeador Inge2013-03-211-2/+0
| | | | | | | The 'Modified' variable should have been removed from SimplifyLibCalls in r177619, but was missed. This commit removes it. llvm-svn: 177622
* <rdar://problem/13037793> Allow the names of modules to differ from the name ↵Douglas Gregor2013-03-219-17/+71
| | | | | | of their subdirectory in the include path. llvm-svn: 177621
* Fix missing std::. Not sure how this compiles for anyone else.Matt Arsenault2013-03-212-2/+2
| | | | llvm-svn: 177620
* Move library call prototype attribute inference to functionattrsMeador Inge2013-03-217-725/+780
| | | | | | | | | | | | The simplify-libcalls pass implemented a doInitialization hook to infer function prototype attributes for well-known functions. Given that the simplify-libcalls pass is going away *and* that the functionattrs pass is already in place to deduce function attributes, I am moving this logic to the functionattrs pass. This approach was discussed during patch review: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121126/157465.html. llvm-svn: 177619
* Per discussion on cxx-abi-dev, switch from comparing type_info objects toRichard Smith2013-03-211-1/+1
| | | | | | | comparing type_info names, since the latter have better uniqueness guarantees in practice. llvm-svn: 177618
* Added a lldb-perf test case that will be used to time various aspects of ↵Greg Clayton2013-03-213-0/+269
| | | | | | | | debugging clang with LLDB. This test case will measure memory usage and expression timings in frame zero and at higher frames. llvm-svn: 177617
* Fixed the ValidOffsetForDataOfSize() to use simpler logic. Fixed ↵Greg Clayton2013-03-213-32/+17
| | | | | | DataExtractor::BytesLeft() to return the correct value. llvm-svn: 177616
* Simplify the logic for DNBDataRef::ValidOffsetForDataOfSize() and ↵Greg Clayton2013-03-211-2/+16
| | | | | | DNBDataRef::ValidOffset() functions. llvm-svn: 177615
* Removing unused DISubprogram::getFileDavid Blaikie2013-03-211-4/+0
| | | | llvm-svn: 177614
* Further weaken block conversion rules to permit blocks withJohn McCall2013-03-213-12/+38
| | | | | | | | | enum return type to be converted to blocks with any integer type of the same size. rdar://13463504 llvm-svn: 177613
* Add more testing cases for tbaa.structManman Ren2013-03-211-0/+29
| | | | | | Testing cases for structs of structs and unions of structs. llvm-svn: 177612
* Add a WriteMicrocoded for ancient microcoded instructions.Jakob Stoklund Olesen2013-03-212-0/+7
| | | | llvm-svn: 177611
* Debug info: refactor the first field of DICompileUnit to be a raw ↵David Blaikie2013-03-2043-59/+54
| | | | | | | | file/directory pair This removes the DICompileUnit special case from DIScope. llvm-svn: 177610
* Debug info - generalize namespace test to not depend on a DW_TAG_file_type entryDavid Blaikie2013-03-201-2/+2
| | | | | | | | This isn't necessary & with the next change to LLVM the DW_TAG_file_type entry won't be emitted at all - only the raw filename/directory pair, so match on that directly instead. llvm-svn: 177609
* Use pre-inc, pre-dec when possible.Jakub Staszak2013-03-203-12/+12
| | | | | | They are generally faster (at least not slower) than post-inc, post-dec. llvm-svn: 177608
* Remove 'else' after 'return'.Jakub Staszak2013-03-201-2/+4
| | | | llvm-svn: 177607
* Split ubsan runtime into three pieces (compiler-rt part):Richard Smith2013-03-204-12/+39
| | | | | | | | | | | | | | | * libclang_rt-san-* is sanitizer_common, and is linked in only if no other sanitizer runtime is present. * libclang_rt-ubsan-* is the piece of the runtime which doesn't depend on a C++ ABI library, and is always linked in. * libclang_rt-ubsan_cxx-* is the piece of the runtime which depends on a C++ ABI library, and is only linked in when linking a C++ binary. The Darwin ubsan runtime is unchanged. For more details, see Clang change r177605. llvm-svn: 177606
* Split ubsan runtime into three pieces (clang part):Richard Smith2013-03-203-20/+79
| | | | | | | | | | | | | | | | | | | | | | | | * libclang_rt-san-* is sanitizer_common, and is linked in only if no other sanitizer runtime is present. * libclang_rt-ubsan-* is the piece of the runtime which doesn't depend on a C++ ABI library, and is always linked in. * libclang_rt-ubsan_cxx-* is the piece of the runtime which depends on a C++ ABI library, and is only linked in when linking a C++ binary. This change also switches us to using -whole-archive for the ubsan runtime (which is made possible by the above split), and switches us to only linking the sanitizer runtime into the main binary and not into DSOs (which is made possible by using -whole-archive). The motivation for this is to only link a single copy of sanitizer_common into any binary. This is becoming important now because we want to share more state between multiple sanitizers in the same process (for instance, we want a single shared output mutex). The Darwin ubsan runtime is unchanged; because we use a DSO there, we don't need this complexity. llvm-svn: 177605
* [ELF][Hexagon][test] check .got.plt orderShankar Easwaran2013-03-203-0/+12
| | | | llvm-svn: 177604
* [X86_64][test] check that interp section is not emitted when building ↵Shankar Easwaran2013-03-203-0/+6
| | | | | | dynamic libraries llvm-svn: 177603
* [lit] Avoid CRLFs in bash scripts on WindowsReid Kleckner2013-03-201-1/+4
| | | | | | | | Native Windows Python will do line ending translation by default, which we don't want in bash scripts. If we're not native Windows Python, then 'b' is ignored. llvm-svn: 177602
* Add declaration for linux.Bill Wendling2013-03-201-0/+1
| | | | llvm-svn: 177601
* Make variable name more explicit and eliminate redundant lookup in ↵Justin Holewinski2013-03-201-4/+4
| | | | | | SDNodeOrdering llvm-svn: 177600
OpenPOWER on IntegriCloud