summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* AMDGPU: Add core backend files for R600/SI codegen v6Tom Stellard2012-07-16114-0/+28329
| | | | llvm-svn: 160270
* [asan] initialize asan error callbacks in runOnModule instead of doing that ↵Kostya Serebryany2012-07-161-8/+20
| | | | | | on-demand llvm-svn: 160269
* Fixing an obvious bug in a test.Alexander Kornienko2012-07-161-2/+1
| | | | llvm-svn: 160268
* tsan: fix buildDmitry Vyukov2012-07-162-0/+8
| | | | llvm-svn: 160267
* tsan: port Go runtime to DarwinDmitry Vyukov2012-07-164-12/+141
| | | | llvm-svn: 160266
* The new clang-ast-dump tool for selective AST dumping. Moved common ↵Alexander Kornienko2012-07-1611-59/+377
| | | | | | command-line tool stuff to CommandLineClangTool llvm-svn: 160265
* Add two more missing parameters in diagnostics.Daniel Jasper2012-07-161-2/+2
| | | | llvm-svn: 160264
* Fix diagnostic adding missing parameter.Daniel Jasper2012-07-161-1/+1
| | | | llvm-svn: 160263
* [Sanitizer] implement straightforward nlogn sorting, as qsort() may call ↵Alexey Samsonov2012-07-163-14/+111
| | | | | | malloc, which leads to deadlock in ASan allocator llvm-svn: 160262
* Allow cast instructions within scopsTobias Grosser2012-07-161-4/+0
| | | | | | | | | | | | Cast instruction do not have side effects and can consequently be part of a scop. We special cased them earlier, as they may be problematic within array subscripts or loop bounds. However, the scalar evolution validator already checks for them such that there is no need to also check the instructions within the basic blocks. Checking them is actually overly conservative as the precence of casts may invalidate a scop, even though scalar evolution is not influenced by it. llvm-svn: 160261
* Fix a bug in the 3-address conversion of LEA when one of the operands is anNadav Rotem2012-07-162-0/+23
| | | | | | | | | | | | undef virtual register. The problem is that ProcessImplicitDefs removes the definition of the register and marks all uses as undef. If we lose the undef marker then we get a register which has no def, is not marked as undef. The live interval analysis does not collect information for these virtual registers and we crash in later passes. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 160260
* tsan: allow to pass CFLAGS to Go runtime build scriptDmitry Vyukov2012-07-161-5/+6
| | | | llvm-svn: 160259
* tsan: add missing test for Go runtimeDmitry Vyukov2012-07-161-0/+15
| | | | llvm-svn: 160258
* Prevent unused-variable warning in optimized builds.Daniel Jasper2012-07-161-0/+1
| | | | llvm-svn: 160257
* Revert r160254 temporarily.Chandler Carruth2012-07-162-26/+28
| | | | | | | | | | | | It turns out that ASan relied on the at-the-end block insertion order to (purely by happenstance) disable some LLVM optimizations, which in turn start firing when the ordering is made more "normal". These optimizations in turn merge many of the instrumentation reporting calls which breaks the return address based error reporting in ASan. We're looking at several different options for fixing this. llvm-svn: 160256
* Add refactoring callbacks to make common kinds of refactorings easy.Daniel Jasper2012-07-166-3/+273
| | | | llvm-svn: 160255
* Teach AddressSanitizer to create basic blocks in a more natural order.Chandler Carruth2012-07-162-28/+26
| | | | | | | | | This is particularly useful to the backend code generators which try to process things in the incoming function order. Also, cleanup some uses of IRBuilder to be a bit simpler and more clear. llvm-svn: 160254
* Add a basic test for AddressSanitizer. This is just a bare-bonesChandler Carruth2012-07-161-0/+70
| | | | | | | | | | | functionality test. In general, unless the functionality is substantially separated, we should lump more basic testing into this file. The test running infrastructure likes having a few test files with more comprehensive testing within them. llvm-svn: 160253
* Add correct parenthesis range to CXXConstructExprs insideDaniel Jasper2012-07-163-3/+6
| | | | | | CXXFunctionalCastExprs. llvm-svn: 160252
* Add support for attaching branch weight metadata directly from the IRBuilder.Chandler Carruth2012-07-162-4/+30
| | | | | | | | | Added a basic unit test for this with CreateCondBr. I didn't go all the way and test the switch side as the boilerplate for setting up the switch IRBuilder unit tests is a lot more. Fortunately, the two share all the interesting code paths. llvm-svn: 160251
* Add a boring bit of boilerplate to start testing IRBuilder::CreateCondBr.Chandler Carruth2012-07-161-1/+15
| | | | | | | This is in anticipation of changing CreateCondBr and wanting to test those changes. llvm-svn: 160250
* Move the IRBuilder unittest from Support to VMCore. This got missed inChandler Carruth2012-07-163-2/+2
| | | | | | the original move of IRBuilder. llvm-svn: 160249
* This CL changes the function prologue and epilogue emitted on X86 when stack ↵Alexey Samsonov2012-07-164-77/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | needs realignment. It is intended to fix PR11468. Old prologue and epilogue looked like this: push %rbp mov %rsp, %rbp and $alignment, %rsp push %r14 push %r15 ... pop %r15 pop %r14 mov %rbp, %rsp pop %rbp The problem was to reference the locations of callee-saved registers in exception handling: locations of callee-saved had to be re-calculated regarding the stack alignment operation. It would take some effort to implement this in LLVM, as currently MachineLocation can only have the form "Register + Offset". Funciton prologue and epilogue are now changed to: push %rbp mov %rsp, %rbp push %14 push %15 and $alignment, %rsp ... lea -$size_of_saved_registers(%rbp), %rsp pop %r15 pop %r14 pop %rbp Reviewed by Chad Rosier. llvm-svn: 160248
* Place checker build at alternate URL.Ted Kremenek2012-07-162-2/+2
| | | | llvm-svn: 160247
* More for PR11848: a pack expansion type isn't necessarily type-dependent (itsRichard Smith2012-07-162-10/+10
| | | | | | | pattern might be an alias template which doesn't use its arguments). It's always instantiation-dependent, though. llvm-svn: 160246
* PR13365: Fix code which was trying to treat an array of DeducedTemplateArgumentRichard Smith2012-07-166-87/+92
| | | | | | | | as an array of its base class TemplateArgument. Switch the const TemplateArgument* parameters of InstantiatingTemplate's constructors to ArrayRef<TemplateArgument> to prevent this from happening again in the future. llvm-svn: 160245
* Related to PR11848 and core-21989: switch ContainsUnexpandedParameterPack fromRichard Smith2012-07-163-12/+58
| | | | | | | | | being a property of a canonical type to being a property of the fully-sugared type. This should only make a difference in the case where an alias template ignores one of its parameters, and that parameter is an unexpanded parameter pack. llvm-svn: 160244
* Move llvm/Support/TypeBuilder.h -> llvm/TypeBuilder.h. This completesChandler Carruth2012-07-159-11/+11
| | | | | | | | | | | | the move of *Builder classes into the Core library. No uses of this builder in Clang or DragonEgg I could find. If there is a desire to have an IR-building-support library that contains all of these builders, that can be easily added, but currently it seems likely that these add no real overhead to VMCore. llvm-svn: 160243
* Update the header guard I missed when moving the header.Chandler Carruth2012-07-151-2/+2
| | | | llvm-svn: 160242
* Revert change accidentally committed in r160240.Richard Smith2012-07-151-4/+3
| | | | llvm-svn: 160241
* PR13368: Halve the instantiation depth of this test again. Apparently, FreeBSDRichard Smith2012-07-152-6/+15
| | | | | | has a much lower default stack limit than the systems I have access to. llvm-svn: 160240
* Update Clang to reflect the move of MDBuilder in r160237.Chandler Carruth2012-07-153-3/+3
| | | | llvm-svn: 160238
* Move llvm/Support/MDBuilder.h to llvm/MDBuilder.h, to live withChandler Carruth2012-07-157-10/+10
| | | | | | | | | | | IRBuilder, DIBuilder, etc. This is the proper layering as MDBuilder can't be used (or implemented) without the Core Metadata representation. Patches to Clang and Dragonegg coming up. llvm-svn: 160237
* Add test case for tweaks to clang driver.David Chisnall2012-07-151-0/+8
| | | | llvm-svn: 160236
* Fix a bug in the scalarization of BUILD_VECTOR. BUILD_VECTOR elements may be ↵Nadav Rotem2012-07-153-1/+18
| | | | | | | | wider than the output element type. Make sure to trunc them if needed. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 160235
* Teach getTargetVShiftNode about TargetConstant nodes.Nadav Rotem2012-07-152-1/+13
| | | | llvm-svn: 160234
* Fix spelling of anyOf matcher and add missing test.Daniel Jasper2012-07-152-4/+7
| | | | | | Patch by Sam Panzer! llvm-svn: 160233
* llvm/test/CodeGen/X86/2012-07-15-broadcastfold.ll: Rewrite expressions to ↵NAKAMURA Takumi2012-07-151-1/+3
| | | | | | | | | fit various targets. - Make sure existence of "barrier". - Confirm reload corresponding to spill. llvm-svn: 160232
* Enable new linker behaviour on FreeBSD.David Chisnall2012-07-151-0/+2
| | | | llvm-svn: 160231
* Rename VBROADCASTSDrm into VBROADCASTSDYrm to match the naming convention.Nadav Rotem2012-07-153-3/+29
| | | | | | | | | | Allow the folding of vbroadcastRR to vbroadcastRM, where the memory operand is a spill slot. PR12782. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 160230
* Refactor the code that checks that all operands of a node are UNDEFs.Nadav Rotem2012-07-153-13/+32
| | | | | | | | | Add a micro-optimization to getNode of CONCAT_VECTORS when both operands are undefs. Can't find a testcase for this because VECTOR_SHUFFLE already handles undef operands, but Duncan suggested that we add this. Together with Michael Kuperstein <michael.m.kuperstein@intel.com> llvm-svn: 160229
* Reapply r160194, switching to use LV information for finding local kills.Chandler Carruth2012-07-151-56/+32
| | | | | | | | | | | | | | | | | | | | | The notable fix is to look at any dependencies attached to the kill instruction (or other instructions between MI nad the kill) where the dependencies are specific to the register in question. The old code implicitly handled this by rejecting the transform if *any* other uses were found within the block, but after the start point. The new code directly finds the kill, and has to re-use the existing dependency scan to check for non-kill uses. This was caught by self-host, but I found the bug via inspection and use of absurd assert scaffolding to compute the kills in two ways and compare them. So I have no useful testcase for this other than "bootstrap". I'd work harder to reduce a test case if this particular code were likely to live for a long time. Thanks to Benjamin Kramer for reviewing the fix itself. llvm-svn: 160228
* Without this patch clang warns onRafael Espindola2012-07-152-7/+54
| | | | | | | | | | | | | | | | | | | | | struct __attribute__((visibility("hidden"))) zed { }; struct __attribute__((visibility("hidden"))) zed; Which is a bit silly and got a lot noisier now that we correctly handle visibility pragmas. This patch fixes that and also has some extra quality improvements: * We now produce an error instead of a warning for struct __attribute__((visibility("hidden"))) zed { }; struct __attribute__((visibility("default"))) zed; * The "after definition" warning now points to the new attribute that is ignored instead of pointing to the declaration. llvm-svn: 160227
* Make const the argument of getDefinition.Rafael Espindola2012-07-151-4/+4
| | | | llvm-svn: 160226
* Use llvm::APSInt::isSameValue to compare for the same value.Eric Christopher2012-07-152-1/+7
| | | | | | Finishes rdar://11875995 llvm-svn: 160225
* Replace IsSameValue with the llvm::APSInt/llvm::APInt versionsEric Christopher2012-07-151-42/+3
| | | | | | | | that we just copied from here and replace all uses. Part of rdar://11875995 llvm-svn: 160224
* Move IsSameValue from clang's ASTImporter to be methods on theEric Christopher2012-07-152-0/+39
| | | | | | | | APInt/APSInt classes. Part of rdar://11875995 llvm-svn: 160223
* AVX: Fix a bug in getTargetVShiftNode. The shift amount has to be a 128bit ↵Nadav Rotem2012-07-142-1/+38
| | | | | | | | vector with the same element type as the input vector. This is needed because of the patterns we have for the VP[SLL/SRA/SRL][W/D/Q] instructions. llvm-svn: 160222
* Add a dagcombine optimization to convert concat_vectors of undefs into a ↵Nadav Rotem2012-07-142-0/+28
| | | | | | | | single undef. The unoptimized concat_vectors isd prevented the canonicalization of the vector_shuffle node. llvm-svn: 160221
* Capitalize comment.Eric Christopher2012-07-141-1/+1
| | | | llvm-svn: 160220
OpenPOWER on IntegriCloud