summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [Sparc] Correct quad register list in the asm parser.Venkatraman Govindaraju2014-01-243-1/+13
| | | | | | Add test cases to check parsing of v9 double registers and their aliased quad registers. llvm-svn: 199974
* Add constants for optional header magic field.Rui Ueyama2014-01-241-0/+5
| | | | llvm-svn: 199972
* Simplify the logic for deciding when to initialize the sections.Rafael Espindola2014-01-248-24/+17
| | | | llvm-svn: 199971
* Most streamers' InitSections just create a text section. Make that the defaultRafael Espindola2014-01-247-21/+6
| | | | llvm-svn: 199969
* Use the actual .text section, it is less code than building a dummy one.Rafael Espindola2014-01-241-25/+4
| | | | llvm-svn: 199968
* Inline trivial functions called only once or twice.Rafael Espindola2014-01-241-32/+14
| | | | llvm-svn: 199967
* [LPM] Fix a logic error in LICM spotted by inspection.Chandler Carruth2014-01-241-1/+1
| | | | | | | | | | | | We completely skipped promotion in LICM if the loop has a preheader or dedicated exits, but not *both*. We hoist if there is a preheader, and sink if there are dedicated exits, but either hoisting or sinking can move loop invariant code out of the loop! I have no idea if this has a practical consequence. If anyone has ideas for a test case, let me know. llvm-svn: 199966
* Inline functions that are only called once.Rafael Espindola2014-01-242-21/+8
| | | | llvm-svn: 199965
* [cleanup] Use the type-based preservation method rather than a stringChandler Carruth2014-01-241-1/+2
| | | | | | | literal that bakes a pass name and forces parsing it in the pass manager. llvm-svn: 199963
* InitToTextSection is redundant with InitSections. Remove it.Rafael Espindola2014-01-2311-33/+2
| | | | llvm-svn: 199955
* Make the use of DW_AT_ranges in the compile unit depend also uponEric Christopher2014-01-232-5/+104
| | | | | | the existence of comdat/special sections. llvm-svn: 199954
* Remove duplicated info on what .text, .data and .bss look like.Rafael Espindola2014-01-235-45/+15
| | | | llvm-svn: 199951
* Update the X86 assembler for .intel_syntax to produce an error for invalid baseKevin Enderby2014-01-232-32/+55
| | | | | | | | | registers in memory addresses that do not match the index register. As it does for .att_syntax. rdar://15887380 llvm-svn: 199948
* lli: Factor portable messaging into a new RPCChannel facilityAlp Toker2014-01-239-168/+151
| | | | | | | The client and server now use a single unified low-level RPC core built around LLVM's existing cross-platform abstractions. llvm-svn: 199947
* Update the X86 assembler for .intel_syntax to produce an error for invalidKevin Enderby2014-01-232-3/+22
| | | | | | | | | | | scale factors in memory addresses. As it does for .att_syntax. It was producing: Assertion failed: (((Scale == 1 || Scale == 2 || Scale == 4 || Scale == 8)) && "Invalid scale!"), function CreateMem, file /Volumes/SandBox/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp, line 1133. rdar://14967214 llvm-svn: 199942
* Fix out of bounds access to the double regs array. Given theEric Christopher2014-01-231-1/+1
| | | | | | | code this looks correct, but could use review. The previous was definitely not correct. llvm-svn: 199940
* Add a few missing cases from r199933. Testcase coming shortly.Lang Hames2014-01-231-0/+8
| | | | llvm-svn: 199938
* Updating the getting started guide for Visual Studio a smidge.Aaron Ballman2014-01-231-8/+4
| | | | llvm-svn: 199934
* Replace vfmaddxx213 instructions with their 231-type equivalents in accumulatorLang Hames2014-01-234-3/+122
| | | | | | | loops. Writing back to the accumulator (231-type) allows the coalescer to eliminate an extra copy. llvm-svn: 199933
* Note the PR number.Rafael Espindola2014-01-231-0/+1
| | | | llvm-svn: 199932
* Remove unused include following r199929Alp Toker2014-01-231-1/+0
| | | | llvm-svn: 199930
* Replace the interim lli build fix with something cleanerAlp Toker2014-01-235-45/+15
| | | | | | | | | | Eliminates the LLI_BUILDING_CHILD build hack from r199885. Also add a FIXME to remove code that tricks the tests into passing when the feature fails to work. Please don't do stuff like this, the tests exist for a reason! llvm-svn: 199929
* [Thumbv8] Fix the value of BLXOperandIndex of isV8EligibleForITWeiming Zhao2014-01-234-7/+26
| | | | | | | | | Originally, BLX was passed as operand #0 in MachineInstr and as operand #2 in MCInst. But now, it's operand #2 in both cases. This patch also removes unnecessary FileCheck in the test case added by r199127. llvm-svn: 199928
* Move test to x86 directory.Eric Christopher2014-01-231-0/+0
| | | | llvm-svn: 199927
* Add target analysis passes to the codegen pipeline for MCJIT.Juergen Ributzka2014-01-2310-4/+30
| | | | | | | | | | | This patch adds the target analysis passes (usually TargetTransformInfo) to the codgen pipeline. We also expose now the AddAnalysisPasses method through the C API, because the optimizer passes would also benefit from better target-specific cost models. Reviewed by Andrew Kaylor llvm-svn: 199926
* [AArch64] Added vselect patterns with float and double typesAna Pazos2014-01-232-0/+17
| | | | llvm-svn: 199925
* Avoid emitting a DWARF type attribute for an ObjC property of typeEric Christopher2014-01-232-1/+106
| | | | | | | | void. Patch by Scott Talbot. llvm-svn: 199924
* Suppress an annoying "unused variable" warning caused by bug 17897.Rui Ueyama2014-01-231-0/+1
| | | | | | | | Clang says that "flow" is unused when building LLD. This patch suppresses it. Differential Revision: http://llvm-reviews.chandlerc.com/D2573 llvm-svn: 199922
* R600: Remove successive JUMP in AnalyzeBranch when AllowModify is trueTom Stellard2014-01-231-1/+7
| | | | | | | | | | | | This fixes a crash in the OpenCV OpenCL test suite. There is no lit test for this, because the test would be very large and could easily be invalidated by changes to the scheduler or other parts of the compiler. Patch by: Vincent Lejeune llvm-svn: 199919
* R600: Disable the BFE patternTom Stellard2014-01-233-1/+12
| | | | | | | | | | This pattern uses an SDNodeXForm, which isn't being emitted for some reason. I can get it to work by attaching the PatLeaf that has the XForm to the argument in the output pattern, but this results in an immediate being used in a register operand, which the backend can't handle yet. llvm-svn: 199918
* R600: Correctly handle vertex fetch clauses the precede ENDIFsTom Stellard2014-01-232-0/+30
| | | | | | | | The control flow finalizer would sometimes use an ALU_POP_AFTER instruction before the vetex fetch clause instead of using a POP instruction after it. llvm-svn: 199917
* R600: Unconditionally unroll loops that contain GEPs with alloca pointersTom Stellard2014-01-232-0/+66
| | | | | | | | | | | | Implement the getUnrollingPreferences() function for AMDGPUTargetTransformInfo so that loops that do address calculations on pointers derived from alloca are unconditionally unrolled. Unrolling these loops makes it more likely that SROA will be able to eliminate the allocas, which is a big win for R600 since memory allocated by alloca (private memory) is really slow. llvm-svn: 199916
* Move a unit test into the correct dir. Sorry if it broke Mips-only builds.Andrew Trick2014-01-231-0/+0
| | | | llvm-svn: 199911
* Remove tail marker when changing an argument to an alloca.Rafael Espindola2014-01-232-0/+29
| | | | | | | | | | Argument promotion can replace an argument of a call with an alloca. This requires clearing the tail marker as it is very likely that the callee is now using an alloca in the caller. This fixes pr14710. llvm-svn: 199909
* R600: Recommit 199842: Add work-around for the CF stack entry HW bugTom Stellard2014-01-236-7/+290
| | | | | | | | | | | | | | | | | | The unit test is now disabled on non-asserts builds. The CF stack can be corrupted if you use CF_ALU_PUSH_BEFORE, CF_ALU_ELSE_AFTER, CF_ALU_BREAK, or CF_ALU_CONTINUE when the number of sub-entries on the stack is greater than or equal to the stack entry size and sub-entries modulo 4 is either 0 or 3 (on cedar the bug is present when number of sub-entries module 8 is either 7 or 0) We choose to be conservative and always apply the work-around when the number of sub-enries is greater than or equal to the stack entry size, so that we can safely over-allocate the stack when we are unsure of the stack allocation rules. reviewed-by: Vincent Lejeune <vljn at ovi.com> llvm-svn: 199905
* [Object][ELF][Mips] Print symbol name for MIPS ELF relocations.Simon Atanasyan2014-01-233-1/+12
| | | | llvm-svn: 199898
* AVX-512: added VPERM2D VPERM2Q VPERM2PS VPERM2PD instructions,Elena Demikhovsky2014-01-236-159/+172
| | | | | | they give better sequences than VPERMI llvm-svn: 199893
* ARM: use litpools for normal i32 imms when compiling minsize.Tim Northover2014-01-234-11/+70
| | | | | | | | | With constant-sharing, litpool loads consume 4 + N*2 bytes of code, but movw/movt pairs consume 8*N. This means litpools are better than movw/movt even with just one use. Other materialisation strategies can still be better though, so the logic is a little odd. llvm-svn: 199891
* Windows/ChildTarget.inc: LLIChildTarget::allocate() has gone since r199881.NAKAMURA Takumi2014-01-231-4/+0
| | | | llvm-svn: 199889
* Prevent repetitive warnings for unrecognized processors and featuresArtyom Skrobov2014-01-234-27/+59
| | | | llvm-svn: 199886
* Interim build fix for MakefilesAlp Toker2014-01-233-2/+8
| | | | | | Looks like some parts still need detangling. Let's see if this holds for now. llvm-svn: 199885
* [LPM] Make LoopSimplify no longer a LoopPass and instead both a utilityChandler Carruth2014-01-236-394/+474
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function and a FunctionPass. This has many benefits. The motivating use case was to be able to compute function analysis passes *after* running LoopSimplify (to avoid invalidating them) and then to run other passes which require LoopSimplify. Specifically passes like unrolling and vectorization are critical to wire up to BranchProbabilityInfo and BlockFrequencyInfo so that they can be profile aware. For the LoopVectorize pass the only things in the way are LoopSimplify and LCSSA. This fixes LoopSimplify and LCSSA is next on my list. There are also a bunch of other benefits of doing this: - It is now very feasible to make more passes *preserve* LoopSimplify because they can simply run it after changing a loop. Because subsequence passes can assume LoopSimplify is preserved we can reduce the runs of this pass to the times when we actually mutate a loop structure. - The new pass manager should be able to more easily support loop passes factored in this way. - We can at long, long last observe that LoopSimplify is preserved across SCEV. This *halves* the number of times we run LoopSimplify!!! Now, getting here wasn't trivial. First off, the interfaces used by LoopSimplify are all over the map regarding how analysis are updated. We end up with weird "pass" parameters as a consequence. I'll try to clean at least some of this up later -- I'll have to have it all clean for the new pass manager. Next up I discovered a really frustrating bug. LoopUnroll *claims* to preserve LoopSimplify. That's actually a lie. But the way the LoopPassManager ends up running the passes, it always ran LoopSimplify on the unrolled-into loop, rectifying this oversight before any verification could kick in and point out that in fact nothing was preserved. So I've added code to the unroller to *actually* simplify the surrounding loop when it succeeds at unrolling. The only functional change in the test suite is that we now catch a case that was previously missed because SCEV and other loop transforms see their containing loops as simplified and thus don't miss some opportunities. One test case has been converted to check that we catch this case rather than checking that we miss it but at least don't get the wrong answer. Note that I have #if-ed out all of the verification logic in LoopSimplify! This is a temporary workaround while extracting these bits from the LoopPassManager. Currently, there is no way to have a pass in the LoopPassManager which preserves LoopSimplify along with one which does not. The LPM will try to verify on each loop in the nest that LoopSimplify holds but the now-Function-pass cannot distinguish what loop is being verified and so must try to verify all of them. The inner most loop is clearly no longer simplified as there is a pass which didn't even *attempt* to preserve it. =/ Once I get LCSSA out (and maybe LoopVectorize and some other fixes) I'll be able to re-enable this check and catch any places where we are still failing to preserve LoopSimplify. If this causes problems I can back this out and try to commit *all* of this at once, but so far this seems to work and allow much more incremental progress. llvm-svn: 199884
* Prospective Makefile build fixAlp Toker2014-01-231-0/+2
| | | | llvm-svn: 199882
* Refactor lli-child-target to remove duplicated codeAlp Toker2014-01-236-174/+32
| | | | | | | | | | | | | | Eliminate the copies LLVM's System mmap and cache invalidation code. These were slowly drifting away from the original version, and moreover the copied code was a dead end in terms of portability. We now statically link to Support but in practice with stripping this adds next to no weight to the resultant binary. Also avoid installing lli-child-target to the user's $PATH. It's not meant to be run directly. llvm-svn: 199881
* [mips][sched] Split IIStore into II_S[BHWD], II_S[WD][LR], and II_SAVEDaniel Sanders2014-01-234-23/+39
| | | | | | No functional change since the InstrItinData's have been duplicated. llvm-svn: 199876
* Add a variable to track whether or not we've used a unique section,Eric Christopher2014-01-2314-33/+38
| | | | | | | | | | | | e.g. linkonce, to TargetMachine and set it when we've done so for ELF targets currently. This involved making TargetMachine non-const in a TLOF use and propagating that change around - I'm open to other ideas. This will be used in a future commit to handle emitting debug information with ranges. llvm-svn: 199871
* [AArch64]Add CHECK for two test cases testing scalar_to_vector committed in ↵Hao Liu2014-01-231-6/+19
| | | | | | r199461. llvm-svn: 199861
* fix some spell mistakes around 'ConcatVector' and 'ShuffleVector' in AArch64 ↵Kevin Qin2014-01-232-5/+5
| | | | | | backend. llvm-svn: 199858
* X86Disassembler.cpp: Fix @param introduced in r199804. [-Wdocumentation]NAKAMURA Takumi2014-01-231-1/+0
| | | | llvm-svn: 199855
* [Mips] formatting through clang-formatJack Carter2014-01-221-10/+10
| | | | llvm-svn: 199853
OpenPOWER on IntegriCloud