summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
...
* Use MachineBasicBlock::isLiveIn.Dan Gohman2010-04-131-8/+1
| | | | llvm-svn: 101144
* Replace r101053 with a fix for getSOImmValRotate() so that it will correctlyBob Wilson2010-04-132-53/+7
| | | | | | | recognize all the valid rotated immediates. This fixes the disassembler issue and will also help codegen for some unusual constant values. llvm-svn: 101114
* add llvm codegen support for -ffunction-sections and -fdata-sections,Chris Lattner2010-04-131-1/+24
| | | | | | patch by Sylvere Teissier! llvm-svn: 101106
* Use .set expression for x86 pic jump table reference to reduce assembly ↵Evan Cheng2010-04-121-0/+9
| | | | | | relocation. rdar://7738756 llvm-svn: 101085
* Micro-optimization:Bill Wendling2010-04-121-1/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we have this situation: jCC L1 jmp L2 L1: ... L2: ... We can get a small performance boost by emitting this instead: jnCC L2 L1: ... L2: ... This testcase shows an example of this: float func(float x, float y) { double product = (double)x * y; if (product == 0.0) return product; return product - 1.0; } llvm-svn: 101075
* Fixed a crasher in arm disassembler within ARMInstPrinter.cpp after callingJohnny Chen2010-04-122-1/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ARM_AM::getSoImmVal(V) with a legitimate so_imm value: #245 rotate right by 2. Introduce ARM_AM::getSOImmValOneOrNoRotate(unsigned Arg) which is called from ARMInstPrinter.cpp's printSOImm() function, replacing ARM_AM::getSOImmVal(V). [12:44:43] johnny:/Volumes/data/llvm/git/trunk (local-trunk) $ gdb Debug/bin/llvm-mc GNU gdb 6.3.50-20050815 (Apple version gdb-1346) (Fri Sep 18 20:40:51 UTC 2009) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ... done (gdb) set args -triple=arm-apple-darwin9 -debug-only=arm-disassembler --disassemble (gdb) r Starting program: /Volumes/data/llvm/git/trunk/Debug/bin/llvm-mc -triple=arm-apple-darwin9 -debug-only=arm-disassembler --disassemble Reading symbols for shared libraries ++. done 0xf5 0x71 0xf0 0x53 Opcode=201 Name=MVNi Format=ARM_FORMAT_DPFRM(4) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ------------------------------------------------------------------------------------------------- | 0: 1: 0: 1| 0: 0: 1: 1| 1: 1: 1: 1| 0: 0: 0: 0| 0: 1: 1: 1| 0: 0: 0: 1| 1: 1: 1: 1| 0: 1: 0: 1| ------------------------------------------------------------------------------------------------- mvnpls r7, Assertion failed: (V != -1 && "Not a valid so_imm value!"), function printSOImm, file ARMInstPrinter.cpp, line 229. Program received signal SIGABRT, Aborted. 0x00007fff88c65886 in __kill () (gdb) bt #0 0x00007fff88c65886 in __kill () #1 0x00007fff88d05eae in abort () #2 0x00007fff88cf2ef0 in __assert_rtn () #3 0x000000010020e422 in printSOImm (O=@0x1010bdf80, V=-1, VerboseAsm=false, MAI=0x1020106d0) at ARMInstPrinter.cpp:229 #4 0x000000010020e5fe in llvm::ARMInstPrinter::printSOImmOperand (this=0x1020107e0, MI=0x7fff5fbfee70, OpNum=1, O=@0x1010bdf80) at ARMInstPrinter.cpp:254 #5 0x00000001001ffbc0 in llvm::ARMInstPrinter::printInstruction (this=0x1020107e0, MI=0x7fff5fbfee70, O=@0x1010bdf80) at ARMGenAsmWriter.inc:3236 #6 0x000000010020c27c in llvm::ARMInstPrinter::printInst (this=0x1020107e0, MI=0x7fff5fbfee70, O=@0x1010bdf80) at ARMInstPrinter.cpp:182 #7 0x000000010003cbff in PrintInsts (DisAsm=@0x10200f4e0, Printer=@0x1020107e0, Bytes=@0x7fff5fbff060, SM=@0x7fff5fbff078) at Disassembler.cpp:65 #8 0x000000010003c8b4 in llvm::Disassembler::disassemble (T=@0x1010c13c0, Triple=@0x1010b6798, Buffer=@0x102010690) at Disassembler.cpp:153 #9 0x000000010004095c in DisassembleInput (ProgName=0x7fff5fbff3f0 "/Volumes/data/llvm/git/trunk/Debug/bin/llvm-mc") at llvm-mc.cpp:347 #10 0x000000010003eefb in main (argc=4, argv=0x7fff5fbff298) at llvm-mc.cpp:374 (gdb) q The program is running. Exit anyway? (y or n) y [13:36:26] johnny:/Volumes/data/llvm/git/trunk (local-trunk) $ llvm-svn: 101053
* Implement support for varargs functions without any fixedChris Lattner2010-04-101-16/+23
| | | | | | | | parameters in the CBE by implicitly adding a fixed argument. This allows eliminating a work-around from DAE. Patch by Sylvere Teissier! llvm-svn: 100944
* Provide versions of the ARM eh_sjlj_setjmp instructions for non-VFP subtargetsBob Wilson2010-04-092-2/+35
| | | | | | | | | such that the non-VFP versions have no implicit defs of VFP registers. If any callee-saved VFP registers are marked as having been defined, the prologue/epilogue code will try to save and restore them. Radar 7770432. llvm-svn: 100892
* "On SPU, variables in the .bss section that are allocated with the .lcomm ↵Chris Lattner2010-04-091-1/+0
| | | | | | | | | | directive are not aligned on 16 byte boundaries. This causes misaligned loads, as the generated assembly assumes this "default" alignment. this patch disables .lcomm in favour of '.local .comm' Patch by Kalle Raisklia! llvm-svn: 100875
* delete a forwarding function.Chris Lattner2010-04-083-18/+23
| | | | llvm-svn: 100815
* move elf section uniquing to MCContext. Along the wayChris Lattner2010-04-088-127/+38
| | | | | | merge XCore's section into MCSectionELF llvm-svn: 100812
* remove the TargetLoweringObjectFileMachO::getMachoSectionChris Lattner2010-04-083-27/+24
| | | | | | api and update clients to use MCContext instead. llvm-svn: 100808
* use abstract interface in two more placesGabor Greif2010-04-081-2/+2
| | | | llvm-svn: 100762
* fix compileGabor Greif2010-04-081-2/+2
| | | | llvm-svn: 100760
* use abstract interfaceGabor Greif2010-04-081-1/+1
| | | | llvm-svn: 100758
* Use twines to simplify calls to report_fatal_error. For code size and ↵Benjamin Kramer2010-04-085-93/+35
| | | | | | readability. llvm-svn: 100756
* Avoid using f64 to lower memcpy from constant string. It's cheaper to use ↵Evan Cheng2010-04-084-23/+37
| | | | | | i32 store of immediates. llvm-svn: 100751
* mpsadbw is not commutative.Eric Christopher2010-04-081-1/+1
| | | | | | Fixes PR3440. llvm-svn: 100736
* Added support for ARM disassembly to edis.Sean Callanan2010-04-081-1/+1
| | | | | | | | | | | I also added a rule to the ARM target's Makefile to build the ARM-specific instruction information table for the enhanced disassembler. I will add the test harness for all this stuff in a separate commit. llvm-svn: 100735
* Update CMake build.Ted Kremenek2010-04-071-0/+1
| | | | llvm-svn: 100714
* rename llvm::llvm_report_error -> llvm::report_fatal_errorChris Lattner2010-04-0721-49/+49
| | | | llvm-svn: 100709
* add newlines at end of files.Chris Lattner2010-04-075-5/+5
| | | | llvm-svn: 100706
* Missed this one line for the previous checkin to fix build warnings.Johnny Chen2010-04-071-1/+0
| | | | llvm-svn: 100697
* Fixed warnings pointed out by clang.Johnny Chen2010-04-071-7/+19
| | | | llvm-svn: 100696
* Fixed warnings pointed out by clang.Johnny Chen2010-04-071-2/+16
| | | | | | Next to work on is ARMDisassemblerCore.cpp. llvm-svn: 100695
* Fixed a bug where the disassembler would allow an immediateSean Callanan2010-04-072-0/+4
| | | | | | | | | argument that had to be between 0 and 7 to have any value, firing an assert later in the AsmPrinter. Now, the disassembler rejects instructions with out-of-range values for that immediate. llvm-svn: 100694
* Fixed 3 warnings pointed out by clang.Johnny Chen2010-04-071-3/+3
| | | | llvm-svn: 100693
* Re-enable ARM/Thumb disassembler and add a workaround for a memcpy() call inJohnny Chen2010-04-072-2/+19
| | | | | | ARMDecoderEmitter.cpp, with FIXME comment. llvm-svn: 100690
* Added an AsmLexer for the ARM target, which usesSean Callanan2010-04-072-0/+143
| | | | | | | a simple mapping of register names to IDs to identify register tokens. llvm-svn: 100685
* Educate GetInstrSizeInBytes implementations thatDale Johannesen2010-04-074-0/+4
| | | | | | DBG_VALUE does not generate code. llvm-svn: 100681
* Remove late ARM codegen optimization pass committed by accident.Anton Korobeynikov2010-04-074-158/+1
| | | | | | It is not ready for public yet. llvm-svn: 100673
* Split A8/A9 itins - they already were too big.Anton Korobeynikov2010-04-073-603/+614
| | | | llvm-svn: 100672
* Add some crude itin approximation for VFP load / stores on A9Anton Korobeynikov2010-04-071-0/+54
| | | | llvm-svn: 100671
* Add some crude approximation for neon load/store instructionsAnton Korobeynikov2010-04-071-1/+55
| | | | llvm-svn: 100670
* Add some A8-based approximation for instructions with unknown cycle timesAnton Korobeynikov2010-04-071-0/+52
| | | | llvm-svn: 100669
* Move NEON-VFP domain fixer upper, so post-RA scheduler would benefit from it.Anton Korobeynikov2010-04-071-4/+6
| | | | llvm-svn: 100668
* Since tblgen bug was fixed (thanks Jakob!) we don't need InstrStage2 hack ↵Anton Korobeynikov2010-04-071-259/+266
| | | | | | anymore. llvm-svn: 100667
* Fix A8 FP NEON MAC itinsAnton Korobeynikov2010-04-071-2/+2
| | | | llvm-svn: 100666
* A9 NEON FP itinsAnton Korobeynikov2010-04-071-0/+66
| | | | llvm-svn: 100665
* Some permute goodness for A9Anton Korobeynikov2010-04-071-1/+85
| | | | llvm-svn: 100664
* More shift itins for A9Anton Korobeynikov2010-04-071-0/+21
| | | | llvm-svn: 100663
* More fixes for itinsAnton Korobeynikov2010-04-071-24/+26
| | | | llvm-svn: 100662
* Fix invalid itins for 32-bit varians of VMLAL and friendsAnton Korobeynikov2010-04-071-14/+14
| | | | llvm-svn: 100661
* Add MAC stuff for A9Anton Korobeynikov2010-04-071-1/+59
| | | | llvm-svn: 100660
* Fix invalid NEON MAC itins on A8Anton Korobeynikov2010-04-071-4/+4
| | | | llvm-svn: 100659
* Fix itins for VPALAnton Korobeynikov2010-04-071-3/+17
| | | | llvm-svn: 100658
* Fix itins for VABAAnton Korobeynikov2010-04-073-23/+76
| | | | llvm-svn: 100657
* Correct VMVN itinerary: operand is read in the second cycle, not in the first.Anton Korobeynikov2010-04-071-2/+2
| | | | llvm-svn: 100656
* More A9 itinerariesAnton Korobeynikov2010-04-072-2/+30
| | | | llvm-svn: 100655
* Correct itinerary class for VPADDAnton Korobeynikov2010-04-071-86/+40
| | | | llvm-svn: 100654
OpenPOWER on IntegriCloud