summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Restore r181216, which was partially reverted in r182499.Stephen Lin2013-07-173-52/+73
| | | | llvm-svn: 186533
* Fix a funny typo. Thanks to Aaron Ballman for noticing.Rafael Espindola2013-07-171-1/+1
| | | | llvm-svn: 186532
* Add a micro optimization to catch cases where the PtrA equals PtrB.Nadav Rotem2013-07-171-1/+1
| | | | llvm-svn: 186531
* Add FILE_SHARE_WRITE to openFileForRead.Rafael Espindola2013-07-171-1/+1
| | | | | | | | | | | | | | This should fix the windows bots. It looks like the failing tests are of the form prog1 > file prog2 file and prog2 fails trying to read the file. The best fix would probably be to close stdout/stderr in prog1, but it was not the intention of 186511 to change this, so just restore the old behavior for now. llvm-svn: 186530
* Silencing an MSVC warning about signed vs unsigned comparison mismatches.Aaron Ballman2013-07-171-1/+1
| | | | llvm-svn: 186529
* [mips] Use "foreach" loop to make register definitions more concise.Akira Hatanaka2013-07-171-80/+9
| | | | llvm-svn: 186528
* Add -*- C++ -*- to InstrEmitter.h.Michael Gottesman2013-07-171-1/+1
| | | | llvm-svn: 186527
* OptParser.td: typoHans Wennborg2013-07-171-2/+2
| | | | llvm-svn: 186517
* This patch checks for valid mnemonics at the beginning of parseInstruction ↵Vladimir Medic2013-07-171-0/+5
| | | | | | method, thus giving the user the right error message for non-existing instructions. llvm-svn: 186512
* Split openFileForRead into Windows and Unix versions.Rafael Espindola2013-07-174-17/+41
| | | | | | | | | | | This has some advantages: * Lets us use native, utf16 windows functions. * Easy to produce good errors on windows about trying to use a directory when we want a file. * Simplifies the unix version a bit. llvm-svn: 186511
* Fix comparisons of alloca alignment in inliner mergingHal Finkel2013-07-172-3/+45
| | | | | | | | Duncan pointed out a mistake in my fix in r186425 when only one of the allocas being compared had the target-default alignment. This is essentially his suggested solution. Thanks! llvm-svn: 186510
* Implement eret and deret(return from exception) instructions for Mips. Test ↵Vladimir Medic2013-07-174-10/+49
| | | | | | examples are given. llvm-svn: 186507
* Add the tests that I forgot to 'svn add' with my previous commit (r186504).Joey Gouly2013-07-175-0/+82
| | | | llvm-svn: 186506
* [ARMv8] Add support for the NEON instructions vmaxnm/vminnm.Joey Gouly2013-07-176-0/+121
| | | | | | | This adds a new class for non-predicable NEON instructions and a new DecoderNamespace for v8 NEON instructions. llvm-svn: 186504
* llvm-ar: doExtract(): Write extracted files with F_Binary. It should fix ↵NAKAMURA Takumi2013-07-171-1/+1
| | | | | | llvm/test/Object/extract.ll llvm-svn: 186503
* Ensure sys::getProcessTriple always uses a normalized triple. Patch byDuncan Sands2013-07-171-1/+1
| | | | | | Thomas B. Jablin, from PR16636. llvm-svn: 186501
* [XCore] Ensure implicit operands aren't lost on the return instruction.Richard Osborne2013-07-172-2/+19
| | | | | | Patch by Robert Lytton. llvm-svn: 186500
* Tweak the cmake interaction between CMAKE_BUILD_TYPE and LLVM_ENABLE_ASSERTIONS.Duncan Sands2013-07-172-3/+3
| | | | | | | | | | | | | | The issue is that CMAKE_BUILD_TYPE=RelWithDebInfo LLVM_ENABLE_ASSERTIONS=ON was not building with assertions enabled. (I was unable to find what in the LLVM source tree was adding -DNDEBUG to the build line in this case, so decided that it must be cmake itself that was adding it - this may depend on the cmake version). The fix treats any mode that is not Debug as being the same as Release for this purpose (previously it was being assumed that cmake would only add -DNDEBUG for Release and not for RelWithDebInfo or MinSizeRel). If other versions of cmake don't add -DNDEBUG for RelWithDebInfo then that's OK: with this change you just get a useless but harmless -UNDEBUG or -DNDEBUG. llvm-svn: 186499
* Teach x86 fast-isel to use AVX opcodes for vector stores when AVX is enabled.Craig Topper2013-07-171-6/+6
| | | | llvm-svn: 186496
* LLVMSymbolize.cpp: Fix build. Triple::ArchType is not a namespace.NAKAMURA Takumi2013-07-171-1/+1
| | | | llvm-svn: 186494
* llvm-symbolizer: be more careful with colons in file namesAlexey Samsonov2013-07-171-8/+7
| | | | llvm-svn: 186493
* Make x86 fast-isel correctly choose between aligned and unaligned operations ↵Craig Topper2013-07-174-31/+77
| | | | | | for vector stores. Fixes PR16640. llvm-svn: 186491
* Fix ARMFastISel::ARMEmitIntExt shift emissionJF Bastien2013-07-171-30/+52
| | | | | | | | My patch 'r183551 - ARM FastISel integer sext/zext improvements' was incorrect when emitting ARM register-immediate ASR, LSL, LSR instructions: they are pseudo-instructions in ARMInstrInfo.td and I should have used MOVsi instead. This is not an issue when code is generated through a .s file, but is an issue when generated straight to a .o (-filetype=obj). llvm-svn: 186489
* PPC: Add CTR-register clobber to builtin setjmpHal Finkel2013-07-174-0/+59
| | | | | | | | | | | | | Because the builtin longjmp implementation uses a CTR-based indirect jump, when the control flow arrives at the builtin setjmp call, the CTR register has necessarily been clobbered. Correspondingly, this adds CTR to the list of implicit definitions of the builtin setjmp pseudo instruction. We don't need to add CTR to the implicit definitions of builtin longjmp because, even though it does clobber the CTR register, the control flow cannot return to inside the loop unless there is also a builtin setjmp call. llvm-svn: 186488
* Add simpler version of is_directory. It will be used in clang.Rafael Espindola2013-07-171-0/+7
| | | | llvm-svn: 186486
* Mark a method 'const' and another 'static'.Craig Topper2013-07-171-2/+2
| | | | llvm-svn: 186485
* Make a few more static string pointers constant.Craig Topper2013-07-171-8/+8
| | | | llvm-svn: 186484
* Don't fallback to copy + delete in rename.Rafael Espindola2013-07-171-11/+2
| | | | | | | | | Rename's documentation says "Files are renamed as if by POSIX rename()". and it is used for atomically updating output files from a temporary. Having rename fallback to a non atomic copy has the potential to hide bugs, like using a temporary file in /tmp instead of a unique name next to the final destination. llvm-svn: 186483
* Make constant string pointer into an array to remove a pointer lookup for ↵Craig Topper2013-07-172-2/+2
| | | | | | every access. llvm-svn: 186482
* raw_ostream.cpp: Introduce <fcntl.h> to let O_BINARY provided. Or, ↵NAKAMURA Takumi2013-07-172-3/+5
| | | | | | | | llvm::outs() would be set to O_TEXT by default. llvm/test/Object/check_binary_output.ll is expected to pass on win32. llvm-svn: 186480
* SLPVectorizer: Accelerate the isConsecutive check by replacing the ↵Nadav Rotem2013-07-171-10/+5
| | | | | | subtraction of the two values with a simple SCEV expression that adds the offset to one of the pointers that we compare. llvm-svn: 186479
* PPC: Implement base pointer and stack realignmentHal Finkel2013-07-176-41/+391
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This builds on some frame-lowering code that has existed since 2005 (r24224) but was disabled in 2008 (r48188) because it needed base pointer support to function correctly. This implementation follows the strategy suggested by Dale Johannesen in r48188 where the following comment was added: This does not currently work, because the delta between old and new stack pointers is added to offsets that reference incoming parameters after the prolog is generated, and the code that does that doesn't handle a variable delta. You don't want to do that anyway; a better approach is to reserve another register that retains to the incoming stack pointer, and reference parameters relative to that. And now we do exactly that. If we don't need a frame pointer, then we use r31 as a base pointer. If we do need a frame pointer, then we use r30 as a base pointer. The base pointer retains the value of the stack pointer before it was decremented in the prologue. We then use the base pointer to resolve all negative frame indicies. The basic scheme follows that for base pointers in the X86 backend. We use a base pointer when we need to dynamically realign the incoming stack pointer. This currently applies only to static objects (dynamic allocas with large alignments, and base-pointer support in SjLj lowering will come in future commits). llvm-svn: 186478
* llvm/test/CodeGen/X86/vec_setcc.ll: Add explicit ↵NAKAMURA Takumi2013-07-171-3/+3
| | | | | | -mtriple=x86_64-unknown-unknown to satisfy win32-targeted configuration. llvm-svn: 186477
* Move string pointer from being a static class member to just a static global ↵Craig Topper2013-07-172-7/+2
| | | | | | in the one file its needed in. llvm-svn: 186476
* Add getModuleFlag(StringRef Key) to query a module flag given Key.Manman Ren2013-07-163-11/+21
| | | | | | No functionality change. llvm-svn: 186470
* llvm/test/Object/ar-create.test: Relax a CHECK line to satisfy localized ↵NAKAMURA Takumi2013-07-161-1/+1
| | | | | | | | message catalogue. For example, 'No such file or directory' cannot be seen on Japanese version of msvcrt. llvm-svn: 186469
* llvm/test/Object/check_binary_output.ll: Mark it as XFAIL on Windows. ↵NAKAMURA Takumi2013-07-161-0/+3
| | | | | | Investigating. llvm-svn: 186468
* flip the scev minus direction to simplify the code.Nadav Rotem2013-07-161-3/+3
| | | | llvm-svn: 186466
* SLPVectorizer: Improve the compile time of isConsecutive by adding a simple ↵Nadav Rotem2013-07-161-0/+18
| | | | | | | | constant-gep check before using SCEV. This check does not always work because not all of the GEPs use a constant offset, but it happens often enough to reduce the number of times we use SCEV. llvm-svn: 186465
* Related to r181161 - Indirect branches may not be the last branch in a basicLang Hames2013-07-161-0/+7
| | | | | | | | | | | | block. Blocks that have an indirect branch terminator, even if it's not the last terminator, should still be treated as unanalyzable. <rdar://problem/14437274> Reducing a useful regression test case is proving difficult - I hope to have one soon. llvm-svn: 186461
* ARM: Add support for the Thumb2 PLI alternate literal form.Tilmann Scheller2013-07-162-0/+7
| | | | | | | | | | This adds an instruction alias to make the assembler recognize the alternate literal form: pli [PC, #+/-<imm>] See A8.8.129 in the ARM ARM (DDI 0406C.b). Fixes <rdar://problem/14403733>. llvm-svn: 186459
* Update the examples for an API change.Rafael Espindola2013-07-161-1/+1
| | | | llvm-svn: 186453
* Add a wrapper for open.Rafael Espindola2013-07-1627-119/+130
| | | | | | | This centralizes the handling of O_BINARY and opens the way for hiding more differences (like how open behaves with directories). llvm-svn: 186447
* Finally, force the target for this test. Should unbreak non-x86 buildbots.Benjamin Kramer2013-07-161-3/+3
| | | | llvm-svn: 186445
* XFAIL this test on mingw.Rafael Espindola2013-07-161-0/+1
| | | | llvm-svn: 186444
* Label names also differ between platforms. Use a relaxed regex.Benjamin Kramer2013-07-161-4/+4
| | | | llvm-svn: 186442
* Fix test not to fail when the target doesn't use leading underscores on symbols.Benjamin Kramer2013-07-161-18/+18
| | | | llvm-svn: 186439
* Cleanup testing case by using a shorter name for types.Manman Ren2013-07-161-39/+39
| | | | llvm-svn: 186436
* Remove floats from live range splitting costs.Jakob Stoklund Olesen2013-07-162-26/+28
| | | | | | | | | | These floats all represented block frequencies anyway, so just use the BlockFrequency class directly. Some floating point computations remain in tryLocalSplit(). They are estimating spill weights which are still floats. llvm-svn: 186435
* Reapply r185393.Jakob Stoklund Olesen2013-07-162-82/+80
| | | | | | | | | | | | | | | | | | | | | | Original commit message: Remove floating point computations from SpillPlacement.cpp. Patch by Benjamin Kramer! Use the BlockFrequency class instead of floats in the Hopfield network computations. This rescales the node Bias field from a [-2;2] float range to two block frequencies BiasN and BiasP pulling in opposite directions. This construct has a more predictable behavior when block frequencies saturate. The per-node scaling factors are no longer necessary, assuming the block frequencies around a bundle are consistent. This patch can cause the register allocator to make different spilling decisions. The differences should be small. llvm-svn: 186434
OpenPOWER on IntegriCloud