summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Change names for MIPS "generic" processors defined in Mips.td to match what GNUAkira Hatanaka2011-11-292-4/+4
| | | | | | | | | | tools use. Patch by Simon Atanasyan. "mips32r1" => "mips32" "4ke" => mips32r2" "mips64r1" => "mips64" llvm-svn: 145451
* ARM assembly parsing and encoding for four-register VST1.Jim Grosbach2011-11-294-52/+47
| | | | llvm-svn: 145450
* Add another missing pattern. llvm-gcc likes f64 but clang likes i64 so it ↵Evan Cheng2011-11-291-0/+6
| | | | | | was generating poor code for some SSE builtins. llvm-svn: 145448
* ARM assembly parsing and encoding for three-register VST1.Jim Grosbach2011-11-294-44/+47
| | | | llvm-svn: 145442
* Make X86::FsFLD0SS / FsFLD0SD real pseudo-instructions.Jakob Stoklund Olesen2011-11-295-28/+15
| | | | | | | | | Like V_SET0, these instructions are expanded by ExpandPostRA to xorps / vxorps so they can participate in execution domain swizzling. This also makes the AVX variants redundant. llvm-svn: 145440
* Potential bug in RewriteLoopBodyWithConditionConstant: use iterator should ↵Stepan Dyatkovskiy2011-11-291-1/+5
| | | | | | not be changed inside the uses enumeration loop. llvm-svn: 145432
* If fast-isel fails, remove dead instructions generated during the failed Chad Rosier2011-11-291-0/+27
| | | | | | attempt. llvm-svn: 145425
* comment.Andrew Trick2011-11-291-0/+4
| | | | llvm-svn: 145422
* build/CMake: Finish removal of add_llvm_library_dependencies.Daniel Dunbar2011-11-2976-563/+0
| | | | llvm-svn: 145420
* Fix a theoretical problem (not seen in the wild): if different instances of aDuncan Sands2011-11-292-1/+5
| | | | | | | | | | | | | | | weak variable are compiled by different compilers, such as GCC and LLVM, while LLVM may increase the alignment to the preferred alignment there is no reason to think that GCC will use anything more than the ABI alignment. Since it is the GCC version that might end up in the final program (as the linkage is weak), it is wrong to increase the alignment of loads from the global up to the preferred alignment as the alignment might only be the ABI alignment. Increasing alignment up to the ABI alignment might be OK, but I'm not totally convinced that it is. It seems better to just leave the alignment of weak globals alone. llvm-svn: 145413
* MC/X86/COFF: Allow quotes in names when targeting MS/Windows,Michael J. Spencer2011-11-294-5/+31
| | | | | | | | | | as MC is the only assembler we support. This splits MS/Windows and GNU/Windows ASM infos into two seperate classes. While there is currently only one difference, full MS C++ ABI support will require many more. llvm-svn: 145409
* Fixed ObjectFile functions:Danil Malyshev2011-11-294-32/+140
| | | | | | | | | | | - getSymbolOffset() renamed as getSymbolFileOffset() - getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile. - added getRelocationOffset() - fixed MachOObjectFile::getSymbolSize() - fixed MachOObjectFile::getSymbolSection() - fixed MachOObjectFile::getSymbolOffset() for symbols without section data. llvm-svn: 145408
* Fixed vsqrt.ss intrinsic usage - order of input operands was wrong.Elena Demikhovsky2011-11-291-1/+1
| | | | | | | Added a test. Thanks Bruno for reviewing the patch. llvm-svn: 145403
* Fix shuffle decoding for memory forms for (V)SHUFPS/D.Craig Topper2011-11-291-6/+12
| | | | llvm-svn: 145392
* Fix issues in shuffle decoding around VPERM* instructions. Fix shuffle ↵Craig Topper2011-11-295-30/+82
| | | | | | decoding for VSHUFPS/D for 256-bit types. Add pattern matching for memory forms of VPERMILPS/VPERMILPD. llvm-svn: 145390
* [Win32] Catch exceptions (eg. segfault) on waiting for invoked clang from ↵NAKAMURA Takumi2011-11-292-2/+12
| | | | | | | | | | | | the driver. clang/lib/Driver/Driver.cpp: Don't pass through negative exit status, or parent would be confused. llvm::sys::Program::Wait(): Suppose 0x8000XXXX and 0xC000XXXX as abnormal exit code and pass it as negative value. Win32 Exception Handler: Exit with ExceptionCode on an unhandle exception. llvm-svn: 145389
* Fix VINSERTF128/VEXTRACTF128 to be marked as FP instructions. Allow ↵Craig Topper2011-11-292-5/+9
| | | | | | execution dependency fix pass to convert them to their integer equivalents when AVX2 is enabled. llvm-svn: 145376
* Correctly mark VPERM2F128 as being an FP instruction and add execution ↵Craig Topper2011-11-292-1/+3
| | | | | | domain fixing support to convert it to VPERM2I128 for AVX2. llvm-svn: 145370
* MachO doesn't support the protected visibility. Don't default to 'global' ↵Bill Wendling2011-11-291-1/+2
| | | | | | here. <rdar://problem/10396775> llvm-svn: 145368
* SCEV fix. In general, Add/Mul expressions should not inherit NSW/NUW.Andrew Trick2011-11-292-10/+14
| | | | | | | This reverts r139450, fixes r139453, and adds much needed comments and a unit test. llvm-svn: 145367
* Make SCEV print <nsw><nuw> for Add/MulExpr.Andrew Trick2011-11-291-0/+8
| | | | llvm-svn: 145364
* On MachO, the pointer to the personality function should always be in theBill Wendling2011-11-291-3/+1
| | | | | | | | non_lazy_symbol_pointers section (__IMPORT,__pointers). Ignore the 'hidden' part since that will place it in the wrong section. <rdar://problem/10443720> llvm-svn: 145356
* Zap some completely ridiculous code. There's probably a miscompile here, ↵Eli Friedman2011-11-291-1/+1
| | | | | | but I don't really want to try to write a testcase involving an invoke returning a pointer to a varargs function... llvm-svn: 145347
* Better fix for ARM MOVT relocation encoding of thumb bit.Jim Grosbach2011-11-292-9/+16
| | | | | | Replaces r145318 with a more targetted fix for the relocation handling. llvm-svn: 145346
* build: Update CMakeLists.txt.Daniel Dunbar2011-11-291-0/+1
| | | | llvm-svn: 145341
* edis: Sink EDMain.cpp into lib/MC/MCDisassembler.Daniel Dunbar2011-11-291-0/+280
| | | | | | | - This fixes some layering violations and matches how we handle the llvm-c lib, for example. llvm-svn: 145338
* Thumb2 only force the fixup thumb bit for data relocations.Jim Grosbach2011-11-281-8/+8
| | | | | | rdar://10493453 llvm-svn: 145318
* Add a missing safety check to ProcessUGT_ADDCST_ADD. Fixes PR11438.Eli Friedman2011-11-281-0/+8
| | | | llvm-svn: 145316
* Remove obsolete FIXME.Jim Grosbach2011-11-281-2/+0
| | | | llvm-svn: 145313
* Make SelectionDAG::InferPtrAlignment use llvm::ComputeMaskedBits instead of ↵Eli Friedman2011-11-282-26/+19
| | | | | | duplicating the logic for globals. Make llvm::ComputeMaskedBits handle GlobalVariables slightly more aggressively, to match what InferPtrAlignment knew how to do. llvm-svn: 145304
* Revert r145273 and fix in SelectionDAG::InferPtrAlignment() instead.Evan Cheng2011-11-282-27/+17
| | | | | | | | | | | Conservatively returns zero when the GV does not specify an alignment nor is it initialized. Previously it returns ABI alignment for type of the GV. However, if the type is a "packed" type, then the under-specified alignments is attached to the load / store instructions. In that case, the alignment of the type cannot be trusted. rdar://10464621 llvm-svn: 145300
* Fix some possible gcc-4.2 may be used uninitialized warnings.Daniel Dunbar2011-11-281-2/+2
| | | | llvm-svn: 145292
* Don't define these unless we plan to use them.Nick Lewycky2011-11-281-0/+2
| | | | llvm-svn: 145289
* DAG combine should not increase alignment of loads / stores with alignment lessEvan Cheng2011-11-281-12/+26
| | | | | | | | | than ABI alignment. These are loads / stores from / to "packed" data structures. Their alignments are intentionally under-specified. rdar://10301431 llvm-svn: 145273
* Add missing avx pattern.Evan Cheng2011-11-281-0/+3
| | | | llvm-svn: 145272
* 80-column.Chad Rosier2011-11-281-2/+4
| | | | llvm-svn: 145267
* Remove dead llvm.eh.sjlj.dispatchsetup intrinsic.Bill Wendling2011-11-283-8/+0
| | | | llvm-svn: 145263
* Remove the temporary flag -disable-unroll-scev and dead code.Andrew Trick2011-11-282-112/+7
| | | | | | SCEV should now be used for trip count analysis, not LoopInfo. llvm-svn: 145262
* Add back a line I deleted by accident in r145141. Fixes uninitialized ↵Eli Friedman2011-11-281-0/+1
| | | | | | variable warnings and runtime failures. llvm-svn: 145256
* Silence wrong warnings from GCC about variables possibly being usedDuncan Sands2011-11-281-2/+2
| | | | | | | uninitialized: GCC doesn't understand that the variables are only used if !UseImm, in which case they have been initialized. llvm-svn: 145239
* Add X86 instruction selection for VPERM2I128 when AVX2 is enabled. Merge ↵Craig Topper2011-11-284-110/+117
| | | | | | VPERMILPS/VPERMILPD detection since they are pretty similar. llvm-svn: 145238
* Make isCommutedVSHUFP more like the way isCommutedSHUFP is handled.Craig Topper2011-11-281-35/+81
| | | | llvm-svn: 145218
* rename ENABLE_THREADS to LLVM_ENABLE_THREADSDylan Noblesmith2011-11-284-7/+7
| | | | | | | | | | | Now that it needs to be exported in a public header (Valgrind.h) it should be prefixed to avoid collision with other projects. Add it to llvm-config.h as well. This'll require regenerating the configure script after this commit, but I don't have the required autoconf version. llvm-svn: 145214
* Place the "cfg checksum" around a test. This was recently added in April 2011 toNick Lewycky2011-11-271-67/+67
| | | | | | | | | | | | | gcc, though I thought it was older (my gcc 4.4 has it as a local patch. Whoops!) This fixes PR10589. Also add some debugging statements. Remove GcnoFiles, the mapping from CompilationUnit to raw_ostream. Now that we start by iterating over each CU and descending into them, there's no need to maintain a mapping. llvm-svn: 145208
* Merge detecting and handling for VSHUFPSY and VSHUFPDY since a lot of the ↵Craig Topper2011-11-271-92/+39
| | | | | | code was similar for both. llvm-svn: 145199
* Prevent rotating the blocks of a loop (and thus getting a backedge to beChandler Carruth2011-11-271-0/+16
| | | | | | | | | | | | | | fallthrough) in cases where we might fail to rotate an exit to an outer loop onto the end of the loop chain. Having *some* rotation, but not performing this rotation, is the primary fix of thep performance regression with -enable-block-placement for Olden/em3d (a whopping 30% regression). Still working on reducing the test case that actually exercises this and the new rotation strategy out of this code, but I want to check if this regresses other test cases first as that may indicate it isn't the correct fix. llvm-svn: 145195
* Take two on rotating the block ordering of loops. My previous attemptChandler Carruth2011-11-271-85/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | was centered around the premise of laying out a loop in a chain, and then rotating that chain. This is good for preserving contiguous layout, but bad for actually making sane rotations. In order to keep it safe, I had to essentially make it impossible to rotate deeply nested loops. The information needed to correctly reason about a deeply nested loop is actually available -- *before* we layout the loop. We know the inner loops are already fused into chains, etc. We lose information the moment we actually lay out the loop. The solution was the other alternative for this algorithm I discussed with Benjamin and some others: rather than rotating the loop after-the-fact, try to pick a profitable starting block for the loop's layout, and then use our existing layout logic. I was worried about the complexity of this "pick" step, but it turns out such complexity is needed to handle all the important cases I keep teasing out of benchmarks. This is, I'm afraid, a bit of a work-in-progress. It is still misbehaving on some likely important cases I'm investigating in Olden. It also isn't really tested. I'm going to try to craft some interesting nested-loop test cases, but it's likely to be extremely time consuming and I don't want to go there until I'm sure I'm testing the correct behavior. Sadly I can't come up with a way of getting simple, fine grained test cases for this logic. We need complex loop structures to even trigger much of it. llvm-svn: 145183
* Revert r145180 as it is causing test failures on all the bots.Chandler Carruth2011-11-274-126/+32
| | | | | | | | | | | | | Original commit message: Fixed ObjectFile functions: - getSymbolOffset() renamed as getSymbolFileOffset() - getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile. - added getRelocationOffset() - fixed MachOObjectFile::getSymbolSize() - fixed MachOObjectFile::getSymbolSection() - fixed MachOObjectFile::getSymbolOffset() for symbols without section data. llvm-svn: 145182
* Fix an impressive type-o / spell-o Duncan noticed.Chandler Carruth2011-11-271-1/+1
| | | | llvm-svn: 145181
* Fixed ObjectFile functions:Danil Malyshev2011-11-274-32/+126
| | | | | | | | | | | - getSymbolOffset() renamed as getSymbolFileOffset() - getSymbolFileOffset(), getSymbolAddress(), getRelocationAddress() returns same result for ELFObjectFile, MachOObjectFile and COFFObjectFile. - added getRelocationOffset() - fixed MachOObjectFile::getSymbolSize() - fixed MachOObjectFile::getSymbolSection() - fixed MachOObjectFile::getSymbolOffset() for symbols without section data. llvm-svn: 145180
OpenPOWER on IntegriCloud