summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM
Commit message (Collapse)AuthorAgeFilesLines
...
* Rewrite address mode 1 code emission routines.Evan Cheng2008-09-122-129/+104
| | | | llvm-svn: 56171
* Rename ConstantSDNode::getValue to getZExtValue, for consistencyDan Gohman2008-09-124-55/+64
| | | | | | | with ConstantInt. This led to fixing a bug in TargetLowering.cpp using getValue instead of getAPIntValue. llvm-svn: 56159
* udpate header comment: s/VP/VFP/Jim Grosbach2008-09-111-1/+1
| | | | llvm-svn: 56126
* Fix logic for not emitting no-dead-strip for someDale Johannesen2008-09-091-0/+1
| | | | | | | | | | objects in llvm.used (thanks Anton). Makes visible the magic 'l' prefix for symbols on Darwin which are to be passed through the assembler, then removed at linktime (previously all references to this had been hidden in the ObjC FE code, oh well). llvm-svn: 55973
* Delete an unused variable.Dan Gohman2008-09-081-1/+0
| | | | llvm-svn: 55915
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-043-4/+4
| | | | llvm-svn: 55779
* Add intrinsics for log, log2, log10, exp, exp2.Dale Johannesen2008-09-041-0/+10
| | | | | | No functional change (and no FE change to generate them). llvm-svn: 55753
* Add Mac OS X compatible JIT callback routine.Evan Cheng2008-09-021-5/+29
| | | | llvm-svn: 55625
* Revamp ARM JIT.Evan Cheng2008-09-021-490/+375
| | | | llvm-svn: 55624
* Control flow instruction encodings.Evan Cheng2008-09-012-17/+71
| | | | llvm-svn: 55601
* ldm / stm instruction encodings.Evan Cheng2008-09-012-6/+28
| | | | llvm-svn: 55599
* AXI2 and AXI3 instruction encodings.Evan Cheng2008-09-012-10/+94
| | | | llvm-svn: 55598
* Reorganize instruction formats again; AXI1 encoding.Evan Cheng2008-09-011-34/+35
| | | | llvm-svn: 55597
* addrmode3 instruction encodings.Evan Cheng2008-09-012-42/+208
| | | | llvm-svn: 55596
* Reorganize some instruction format definitions. No functionality change.Evan Cheng2008-09-011-18/+29
| | | | llvm-svn: 55594
* Rest of addrmode2 instruction encodings.Evan Cheng2008-09-012-14/+106
| | | | llvm-svn: 55593
* Addr2 word / byte load encodings.Evan Cheng2008-08-312-4/+24
| | | | llvm-svn: 55591
* Addr1 instructions opcodes are encoded in bits 21-24; encode S bit.Evan Cheng2008-08-311-4/+5
| | | | llvm-svn: 55590
* TableGen'ing instruction encodings.Evan Cheng2008-08-291-1/+2
| | | | llvm-svn: 55533
* addrmode1 (data processing) instruction encoding: bits 5-6 are 0, bits 7-10 ↵Evan Cheng2008-08-291-3/+10
| | | | | | encode the opcode. llvm-svn: 55531
* MVN is addrmode1.Evan Cheng2008-08-291-7/+7
| | | | llvm-svn: 55530
* More refactoring.Evan Cheng2008-08-292-45/+55
| | | | llvm-svn: 55528
* Refactor ARM instruction format definitions into a separate file. No ↵Evan Cheng2008-08-282-215/+232
| | | | | | functionality changes. llvm-svn: 55518
* erect abstraction boundaries for accessing SDValue members, rename Val -> ↵Gabor Greif2008-08-282-22/+22
| | | | | | Node to reflect semantics llvm-svn: 55504
* disallow direct access to SDValue::ResNo, provide a getter insteadGabor Greif2008-08-262-2/+2
| | | | llvm-svn: 55394
* Make TargetInstrInfo::copyRegToReg return a bool indicating whether the copy ↵Owen Anderson2008-08-262-5/+7
| | | | | | | | | requested was inserted or not. This allows bitcast in fast isel to properly handle the case where an appropriate reg-to-reg copy is not available. llvm-svn: 55375
* Switch the asmprinter (.ll) and all the stuff it requires over toChris Lattner2008-08-232-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | use raw_ostream instead of std::ostream. Among other goodness, this speeds up llvm-dis of kc++ with a release build from 0.85s to 0.49s (88% faster). Other interesting changes: 1) This makes Value::print be non-virtual. 2) AP[S]Int and ConstantRange can no longer print to ostream directly, use raw_ostream instead. 3) This fixes a bug in raw_os_ostream where it didn't flush itself when destroyed. 4) This adds a new SDNode::print method, instead of only allowing "dump". A lot of APIs have both std::ostream and raw_ostream versions, it would be useful to go through and systematically anihilate the std::ostream versions. This passes dejagnu, but there may be minor fallout, plz let me know if so and I'll fix it. llvm-svn: 55263
* Move the point at which FastISel taps into the SelectionDAGISelDan Gohman2008-08-231-3/+3
| | | | | | | | | | | | | | | | | | process up to a higher level. This allows FastISel to leverage more of SelectionDAGISel's infastructure, such as updating Machine PHI nodes. Also, implement transitioning from SDISel back to FastISel in the middle of a block, so it's now possible to go back and forth. This allows FastISel to hand individual CallInsts and other complicated things off to SDISel to handle, while handling the rest of the block itself. To help support this, reorganize the SelectionDAG class so that it is allocated once and reused throughout a function, instead of being completely reallocated for each block. llvm-svn: 55219
* Simplify SelectRoot's interface, and factor out some common codeDan Gohman2008-08-211-1/+1
| | | | | | from all targets. llvm-svn: 55124
* Use raw_ostream throughout the AsmPrinter.Owen Anderson2008-08-214-10/+13
| | | | llvm-svn: 55092
* ARM asm printer can't handle dwarf info yet.Evan Cheng2008-08-181-6/+12
| | | | llvm-svn: 54913
* Move ARM to pluggable asmprinterAnton Korobeynikov2008-08-175-20/+71
| | | | llvm-svn: 54889
* Convert uses of std::vector in TargetInstrInfo to SmallVector. This change ↵Owen Anderson2008-08-142-12/+13
| | | | | | had to be propoagated down into all the targets and up into all clients of this API. llvm-svn: 54802
* Whitespace cleanup. Test commit.Jim Grosbach2008-08-121-0/+1
| | | | llvm-svn: 54695
* Handle visibility printing with all generality. Remove bunch of duplicate code.Anton Korobeynikov2008-08-081-16/+2
| | | | llvm-svn: 54540
* Undo most of r54519.Evan Cheng2008-08-081-3/+2
| | | | llvm-svn: 54534
* It's not legal to output a GV in a coalesced section if it's used in an ARM ↵Evan Cheng2008-08-081-9/+23
| | | | | | PIC relative constantpool. llvm-svn: 54519
* Switch ARM to new section handling stuffAnton Korobeynikov2008-08-074-234/+226
| | | | llvm-svn: 54458
* Rename SDOperand to SDValue.Dan Gohman2008-07-275-303/+303
| | | | llvm-svn: 54128
* Teach ARM isLegalAddressingMode to handle unknown type without crashing. ↵Evan Cheng2008-07-251-1/+1
| | | | | | This fixes pr2589. llvm-svn: 54004
* Add a new function, ReplaceAllUsesOfValuesWith, which handles bulkDan Gohman2008-07-171-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | replacement of multiple values. This is slightly more efficient than doing multiple ReplaceAllUsesOfValueWith calls, and theoretically could be optimized even further. However, an important property of this new function is that it handles the case where the source value set and destination value set overlap. This makes it feasible for isel to use SelectNodeTo in many very common cases, which is advantageous because SelectNodeTo avoids a temporary node and it doesn't require CSEMap updates for users of values that don't change position. Revamp MorphNodeTo, which is what does all the work of SelectNodeTo, to handle operand lists more efficiently, and to correctly handle a number of corner cases to which its new wider use exposes it. This commit also includes a change to the encoding of post-isel opcodes in SDNodes; now instead of being sandwiched between the target-independent pre-isel opcodes and the target-dependent pre-isel opcodes, post-isel opcodes are now represented as negative values. This makes it possible to test if an opcode is pre-isel or post-isel without having to know the size of the current target's post-isel instruction set. These changes speed up llc overall by 3% and reduce memory usage by 10% on the InstructionCombining.cpp testcase with -fast and -regalloc=local. llvm-svn: 53728
* add support for returning i128, PR2532.Chris Lattner2008-07-111-0/+14
| | | | llvm-svn: 53472
* Trim unnecessary #includes.Dan Gohman2008-07-111-0/+2
| | | | llvm-svn: 53471
* Emit debug info for data-only files. ARM version.Dale Johannesen2008-07-091-3/+8
| | | | llvm-svn: 53360
* Back out 53254. It broke ppc debug info codegen.Evan Cheng2008-07-091-8/+3
| | | | llvm-svn: 53280
* Make debug info come out in data-only files.Dale Johannesen2008-07-081-3/+8
| | | | | | | | | | | This is a question of the debugging setup code not being called at the right time, and it's called from target-dependent code for some reason. I have only attempted to fix Darwin, but I'm pretty sure it's broken elsewhere; I'll leave that to people who can test it. llvm-svn: 53254
* Pool-allocation for MachineInstrs, MachineBasicBlocks, andDan Gohman2008-07-073-39/+41
| | | | | | | | | | | MachineMemOperands. The pools are owned by MachineFunctions. This drastically reduces the number of calls to malloc/free made during the "Emit" phase of scheduling, as well as later phases in CodeGen. Combined with other changes, this speeds up the "instruction selection" phase of CodeGen by 10% in some cases. llvm-svn: 53212
* Minor const-correctness fixes.Dan Gohman2008-07-071-1/+1
| | | | llvm-svn: 53196
* Add explicit keywords.Dan Gohman2008-07-071-1/+1
| | | | llvm-svn: 53179
* Rather than having a different custom legalizationDuncan Sands2008-07-042-4/+4
| | | | | | | | | | | | hook for each way in which a result type can be legalized (promotion, expansion, softening etc), just use one: ReplaceNodeResults, which returns a node with exactly the same result types as the node passed to it, but presumably with a bunch of custom code behind the scenes. No change if the new LegalizeTypes infrastructure is not turned on. llvm-svn: 53137
OpenPOWER on IntegriCloud