summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* R600: use native for aluVincent Lejeune2013-04-304-4/+135
| | | | llvm-svn: 180761
* R600: Packetize instructionsVincent Lejeune2013-04-306-3/+464
| | | | llvm-svn: 180760
* R600: Rework Scheduling to handle difference between VLIW4 and VLIW5 chipsVincent Lejeune2013-04-305-32/+105
| | | | llvm-svn: 180759
* R600: Add a Bank Swizzle operandVincent Lejeune2013-04-304-11/+19
| | | | llvm-svn: 180758
* R600: Take inner dependency into tex/vtx clausesVincent Lejeune2013-04-301-0/+34
| | | | llvm-svn: 180757
* R600: Turn TEX/VTX into native instructionsVincent Lejeune2013-04-303-15/+50
| | | | llvm-svn: 180756
* R600: Add FetchInst bit to instruction defs to denote vertex/tex instructionsVincent Lejeune2013-04-309-58/+95
| | | | | | v2[Vincent Lejeune]: Split FetchInst into usesTextureCache/usesVertexCache llvm-svn: 180755
* R600: Add some new processor variantsVincent Lejeune2013-04-302-1/+3
| | | | llvm-svn: 180753
* R600: Clean up instruction class definitionsVincent Lejeune2013-04-301-23/+14
| | | | llvm-svn: 180752
* R600: config section now reports use of killgtVincent Lejeune2013-04-301-0/+4
| | | | llvm-svn: 180751
* Revert the command line option patch. However, keep the part that makes this ↵Bill Wendling2013-04-292-20/+5
| | | | | | pass on Windows. I.e., we don't emit the target dependent attributes in a comment before the function. llvm-svn: 180750
* Emit the TLS initialization function pointers into the correct section.Bill Wendling2013-04-291-0/+15
| | | | | | | | | | The `llvm.tls_init_funcs' (created by the front-end) holds pointers to the TLS initialization functions. These need to be placed into the correct section so that they are run before `main()'. <rdar://problem/13733006> llvm-svn: 180737
* Add getSymbolAlignment to the ObjectFile interface.Rafael Espindola2013-04-296-20/+27
| | | | | | | | | | | | | For regular object files this is only meaningful for common symbols. An object file format with direct support for atoms should be able to provide alignment information for all symbols. This replaces getCommonSymbolAlignment and fixes test-common-symbols-alignment.ll on darwin. This also includes a fix to MachOObjectFile::getSymbolFlags. It was marking undefined symbols as common (already tested by existing mcjit tests now that it is used). llvm-svn: 180736
* R600: Use correct CF_END instruction on Northern Island GPUsTom Stellard2013-04-291-1/+1
| | | | llvm-svn: 180735
* R600: Fix encoding of CF_END_{EG, R600} instructionsTom Stellard2013-04-291-0/+1
| | | | | | The EOP bit was not being encoded. llvm-svn: 180734
* Rationalize what is public in RuntimeDyldMachO and RuntimeDyldELF.Rafael Espindola2013-04-292-25/+18
| | | | | | | | The implemented RuntimeDyldImpl interface is public. Everything else is private. Since these classes are not inherited from (yet), there is no need to have protected members. llvm-svn: 180733
* SimplifyCFG: If convert single conditional storesArnold Schwaighofer2013-04-291-4/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This resurrects r179957, but adds code that makes sure we don't touch atomic/volatile stores: This transformation will transform a conditional store with a preceeding uncondtional store to the same location: a[i] = may-alias with a[i] load if (cond) a[i] = Y into an unconditional store. a[i] = X may-alias with a[i] load tmp = cond ? Y : X; a[i] = tmp We assume that on average the cost of a mispredicted branch is going to be higher than the cost of a second store to the same location, and that the secondary benefits of creating a bigger basic block for other optimizations to work on outway the potential case where the branch would be correctly predicted and the cost of the executing the second store would be noticably reflected in performance. hmmer's execution time improves by 30% on an imac12,2 on ref data sets. With this change we are on par with gcc's performance (gcc also performs this transformation). There was a 1.2 % performance improvement on a ARM swift chip. Other tests in the test-suite+external seem to be mostly uninfluenced in my experiments: This optimization was triggered on 41 tests such that the executable was different before/after the patch. Only 1 out of the 40 tests (dealII) was reproducable below 100% (by about .4%). Given that hmmer benefits so much I believe this to be a fair trade off. llvm-svn: 180731
* Update the documentation.Rafael Espindola2013-04-291-5/+1
| | | | llvm-svn: 180725
* Use a RelocationRef instead of a relocation_iterator.Rafael Espindola2013-04-296-13/+13
| | | | | | No functionality change. llvm-svn: 180723
* Revert "revert r179735, it has no testcases, and doesn't really make sense."Reid Kleckner2013-04-293-28/+32
| | | | | | | | | | This un-reverts r179735 and reverts commit r180574. This fixes assertion failures for me locally and should fix the failures on Windows reported widely on llvm-dev. We should check if the bots caught this and if so why not. llvm-svn: 180722
* Exposing MCJIT through C APIAndrew Kaylor2013-04-292-1/+48
| | | | | | | | Re-submitting with fix for OCaml dependency problems (removing dependency on SectionMemoryManager when it isn't used). Patch by Fili Pizlo llvm-svn: 180720
* Propagate relocation info to resolveRelocation.Rafael Espindola2013-04-296-41/+58
| | | | | | This gets most of the MCJITs tests passing with MachO. llvm-svn: 180716
* Replace ObjRelocationInfo with relocation_iterator.Rafael Espindola2013-04-296-65/+59
| | | | | | | | | | | For MachO we need information that is not represented in ObjRelocationInfo. Instead of copying the bits we think are needed from a relocation_iterator, just pass the relocation_iterator down to the format specific functions. No functionality change yet as we still drop the information once processRelocationRef returns. llvm-svn: 180711
* Add in some conditional compilation in order to silence an unused variable ↵Michael Gottesman2013-04-291-0/+2
| | | | | | warning. llvm-svn: 180700
* [objc-arc] Apply the RV optimization to retains next to calls in ↵Michael Gottesman2013-04-292-53/+64
| | | | | | | | | | | | | | | ObjCARCContract instead of ObjCARCOpts. Turning retains into retainRV calls disrupts the data flow analysis in ObjCARCOpts. Thus we move it as late as we can by moving it into ObjCARCContract. We leave in the conversion from retainRV -> retain in ObjCARCOpt since it enables the dataflow analysis. rdar://10813093 llvm-svn: 180698
* Added statistics to count the number of retains/releases before/after ↵Michael Gottesman2013-04-291-0/+47
| | | | | | optimization. llvm-svn: 180697
* Removed trailing whitespace.Michael Gottesman2013-04-291-1/+1
| | | | llvm-svn: 180696
* Fix for r180693. = /.Michael Gottesman2013-04-291-1/+2
| | | | llvm-svn: 180694
* [objc-arc-annotations] Moved the disabling of call movement to ↵Michael Gottesman2013-04-291-6/+5
| | | | | | ConnectTDBUTraversals so that I can prevent Changed = true from being set. This prevents an infinite loop. llvm-svn: 180693
* Inline variable into the #ifdef block where it's used.Benjamin Kramer2013-04-281-1/+1
| | | | llvm-svn: 180688
* AArch64 InstrFormats:Jia Liu2013-04-281-1/+1
| | | | | | delete blank. llvm-svn: 180687
* Fix typo. Stupid me.Joerg Sonnenberger2013-04-271-1/+1
| | | | llvm-svn: 180686
* Only use cxxabi.h's demangler, if it is actually available.Joerg Sonnenberger2013-04-271-2/+8
| | | | llvm-svn: 180684
* Fix a XOR reassociation bug. Shuxin Yang2013-04-271-3/+6
| | | | | | | | | | When Reassociator optimize "(x | C1)" ^ "(X & C2)", it may swap the two subexpressions, however, it forgot to swap cached constants (of C1 and C2) accordingly. rdar://13739160 llvm-svn: 180676
* Generalize the MachineTraceMetrics public API.Andrew Trick2013-04-271-1/+15
| | | | | | | Naturally, we should be able to pass in extra instructions, not just extra blocks. llvm-svn: 180667
* Use the target triple from the target machine rather than the moduleEric Christopher2013-04-272-1/+5
| | | | | | | | | | | | | | | | to determine whether or not we're on a darwin platform for debug code emitting. Solves the problem of a module with no triple on the command line and no triple in the module using non-gdb ok features on darwin. Fix up the member-pointers test to check the correct things for cross platform (DW_FORM_flag is a good prefix). Unfortunately no testcase because I have no ideas how to test something without a triple and without a triple in the module yet check precisely on two platforms. Ideas welcome. llvm-svn: 180660
* Make all darwin ppc stubs local.Rafael Espindola2013-04-271-1/+9
| | | | | | | This fixes pr15763. Patch by David Fang. llvm-svn: 180657
* Struct-path aware TBAA: change the format of TBAAStructType node.Manman Ren2013-04-271-13/+30
| | | | | | | | We switch the order of offset and field type to make TBAAStructType node (name, parent node, offset) similar to scalar TBAA node (name, parent node). TypeIsImmutable is added to TBAAStructTag node. llvm-svn: 180654
* Cleanup and document MachineLocation.Adrian Prantl2013-04-262-3/+9
| | | | | | | | | | | | Clarify documentation and API to make the difference between register and register-indirect addressed locations more explicit. Put in a comment to point out that with the current implementation we cannot specify a register-indirect location with offset 0 (a breg 0 in DWARF). No functionality change intended. rdar://problem/13658587 llvm-svn: 180641
* Micro-optimizationBill Wendling2013-04-261-5/+4
| | | | | | | TLVs probably won't be as common as the other types of variables. Check for them last before defaulting to "DATA". llvm-svn: 180631
* Teach the interpreter to handle vector compares and additional vector ↵Nadav Rotem2013-04-261-44/+280
| | | | | | | | arithmetic operations. Patch by Yuri Veselov. llvm-svn: 180626
* Use llvm/Object/MachO.h in macho-dumper. Drop the old macho parser.Rafael Espindola2013-04-264-453/+133
| | | | | | | | | | | | | | | | | | | | | For Mach-O there were 2 implementations for parsing object files. A standalone llvm/Object/MachOObject.h and llvm/Object/MachO.h which implements the generic interface in llvm/Object/ObjectFile.h. This patch adds the missing features to MachO.h, moves macho-dump to use MachO.h and removes ObjectFile.h. In addition to making sure that check-all is clean, I checked that the new version produces exactly the same output in all Mach-O files in a llvm+clang build directory (including executables and shared libraries). To test the performance, I ran macho-dump over all the files in a llvm+clang build directory again, but this time redirecting the output to /dev/null. Both the old and new versions take about 4.6 seconds (2.5 user) to finish. llvm-svn: 180624
* R600: Initialize AMDGPUMachineFunction::ShaderType to ShaderType::COMPUTETom Stellard2013-04-261-0/+2
| | | | | | | | | We need to intialize this to something and since clang does not set the shader type attribute and clang is used only for compute shaders, initializing it to COMPUTE seems like the best choice. Reviewed-by: Christian König <christian.koenig@amd.com> llvm-svn: 180620
* fix a typo that due to cu&paste quadrupled itselfAdrian Prantl2013-04-261-2/+2
| | | | | | rdar://problem/13056109 llvm-svn: 180618
* ARM: Fix encoding of hint instruction for Thumb.Quentin Colombet2013-04-264-16/+22
| | | | | | | | | | | | | | | "hint" space for Thumb actually overlaps the encoding space of the CPS instruction. In actuality, hints can be defined as CPS instructions where imod and M bits are all nil. Handle decoding of permitted nop-compatible hints (i.e. nop, yield, wfi, wfe, sev) in DecodeT2CPSInstruction. This commit adds a proper diagnostic message for Imm0_4 and updates all tests. Patch by Mihail Popa <Mihail.Popa@arm.com>. llvm-svn: 180617
* Bugfix for the debug intrinsic handling in InstCombiner:Adrian Prantl2013-04-261-2/+27
| | | | | | | | | | | Since we can't guarantee that the original dbg.declare instrinsic is removed by LowerDbgDeclare(), we need to make sure that we are not inserting the same dbg.value intrinsic over and over. This removes tons of redundant DIEs when compiling optimized code. rdar://problem/13056109 llvm-svn: 180615
* PowerPC: Use RegisterOperand instead of RegisterClass operandsUlrich Weigand2013-04-263-432/+452
| | | | | | | | | | | | | | | | | In the default PowerPC assembler syntax, registers are specified simply by number, so they cannot be distinguished from immediate values (without looking at the opcode). This means that the default operand matching logic for the asm parser does not work, and we need to specify custom matchers. Since those can only be specified with RegisterOperand classes and not directly on the RegisterClass, all instructions patterns used by the asm parser need to use a RegisterOperand (instead of a RegisterClass) for all their register operands. This patch adds one RegisterOperand for each RegisterClass, using the same name as the class, just in lower case, and updates all instruction patterns to use RegisterOperand instead of RegisterClass operands. llvm-svn: 180611
* Re-write the address propagation code for pre-indexed loads/stores to take ↵Silviu Baranga2013-04-261-14/+29
| | | | | | into account some previously misssed cases (PRE_DEC addressing mode, the offset and base address are swapped, etc). This should fix PR15581. llvm-svn: 180609
* PowerPC: Fix encoding of vsubcuw and vsum4sbs instructionsUlrich Weigand2013-04-261-2/+2
| | | | | | | | | When testing the asm parser, I noticed wrong encodings for the above instructions (wrong sub-opcodes). Tests will be added together with the asm parser. llvm-svn: 180608
* PowerPC: Fix encoding of stfsu and stfdu instructionsUlrich Weigand2013-04-261-2/+2
| | | | | | | | | | | When testing the asm parser, I noticed wrong encodings for the above instructions (wrong sub-opcodes). Note that apparently the compiler currently never generates pre-inc instructions for floating point types for some reason ... Tests will be added together with the asm parser. llvm-svn: 180607
OpenPOWER on IntegriCloud