summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* If the insert_subreg source is <undef>, insert an implicit_def instead of a ↵Evan Cheng2009-08-051-2/+8
| | | | | | copy. llvm-svn: 78141
* Various comment fixes.Dan Gohman2009-08-051-3/+8
| | | | llvm-svn: 78139
* Remove an unnecessary flush in the CppBackend's output.Dan Gohman2009-08-051-1/+0
| | | | llvm-svn: 78138
* Don't flush the raw_ostream between each MachineFunction. These flushDan Gohman2009-08-056-12/+0
| | | | | | | | | | | calls were originally put in place because errs() at one time was not unbuffered, and these print routines are commonly used with errs() for debugging. However, errs() is now properly unbuffered, so the flush calls are no longer needed. This significantly reduces the number of write(2) calls for regular asm printing when there are many small functions. llvm-svn: 78137
* Change DAG nodes for Neon VLD2/3/4 operations to return multiple results.Bob Wilson2009-08-054-31/+108
| | | | | | | | | Get rid of yesterday's code to fix the register usage during isel. Select the new DAG nodes to machine instructions. The new pre-alloc pass to choose adjacent registers for these results is not done, so the results of this will generally not assemble yet. llvm-svn: 78136
* cerr isn't buffered so it doesn't need to be flushed.Dan Gohman2009-08-051-3/+3
| | | | llvm-svn: 78135
* Remove needless uses of std::flush in the parent process after aDan Gohman2009-08-051-7/+0
| | | | | | | fork call. This eliminates a need for <iostream>. Also remove needless fsync calls. llvm-svn: 78131
* Privatize the PointerType factory.Owen Anderson2009-08-052-6/+9
| | | | llvm-svn: 78130
* 1) Proper emit displacements for x86, using absolute relocations where necessaryBruno Cardoso Lopes2009-08-053-31/+56
| | | | | | | | | | for ELF to work. 2) RIP addressing: Use SIB bytes for absolute relocations where RegBase=0, IndexReg=0. 3) The JIT can get the real address of cstpools and jmptables during code emission, fix that for object code emission llvm-svn: 78129
* Use _exit rather than exit in the child process after a failed exec.Dan Gohman2009-08-051-3/+7
| | | | | | Add a comment explaining why. llvm-svn: 78128
* Make ExecutionEngine::updateGlobalMapping(GV, NULL) properly remove GV's oldJeffrey Yasskin2009-08-041-1/+1
| | | | | | address from the reverse mapping, and add a test that this works now. llvm-svn: 78127
* Fix part 1 of pr4682. PICADD is a 16-bit instruction even in thumb2 mode.Evan Cheng2009-08-043-9/+8
| | | | llvm-svn: 78126
* Privatize the VectorType uniquing.Owen Anderson2009-08-042-6/+9
| | | | llvm-svn: 78125
* Begin the process of privatizing the type uniquing tables. No API changes ↵Owen Anderson2009-08-043-427/+440
| | | | | | yet, but there will be in the near future. llvm-svn: 78122
* Check for !isa<Constant> instead of isa<Instruction>. ThisDan Gohman2009-08-041-1/+1
| | | | | | | matches what the comment says, and it avoids spurious BitCast instructions for Argument values. llvm-svn: 78121
* Follow Unix behavior and return 127 if the command is not found,Dan Gohman2009-08-041-1/+1
| | | | | | and 126 if it is not executable. llvm-svn: 78120
* revert r78048, it isn't worth using assertingvh here.Chris Lattner2009-08-042-9/+9
| | | | llvm-svn: 78119
* Update CMakeLists.Benjamin Kramer2009-08-041-1/+0
| | | | llvm-svn: 78118
* It helps if I remember to actually add the file...Owen Anderson2009-08-041-0/+774
| | | | llvm-svn: 78116
* Factor some of the constants+context related code out into a separate ↵Owen Anderson2009-08-047-802/+24
| | | | | | | | header, to make LLVMContextImpl.h not hideous. Also, fix some MSVC compile errors. llvm-svn: 78115
* Replace dregsingle operand modifier with explicit escaped curly brackets.Bob Wilson2009-08-042-4/+2
| | | | | | | For other VLDn and VSTn operations, we need to list the multiple registers explicitly anyway, so there's no point in special-casing this one usage. llvm-svn: 78109
* Clean up the handling of two-address operands in RegScavenger.Jakob Stoklund Olesen2009-08-041-12/+3
| | | | | | This fixes PR4528. llvm-svn: 78107
* Don't give implicit machine operands special treatment in the register ↵Jakob Stoklund Olesen2009-08-041-5/+2
| | | | | | | | | scavenger. Imp-def is *not* allowed to redefine a live register. Imp-use is *not* allowed to use a dead register. llvm-svn: 78106
* Restlyize to match other targets, fixes cmake build to boot.Mike Stump2009-08-042-2/+7
| | | | llvm-svn: 78105
* Enable load / store multiple pass for Thumb2. It's not using ldrd / strd yet.Evan Cheng2009-08-043-8/+13
| | | | llvm-svn: 78104
* remove a random reference to subtarget. Even without this, weChris Lattner2009-08-041-2/+0
| | | | | | | still get "intel syntax" instructions from llc with -x86-asm-syntax=intel llvm-svn: 78103
* Add NEON single-precision FP support for fabs and fneg.David Goodwin2009-08-043-6/+22
| | | | llvm-svn: 78101
* When exec() fails, return 127 instead of errno; the parent process has no way toDaniel Dunbar2009-08-041-3/+3
| | | | | | | distinguish that the result is errno, so it can't use it to provide more information about the error (it also exposes the numeric value of errno). llvm-svn: 78098
* Privatize the last bit of Constant-creation state.Owen Anderson2009-08-043-442/+432
| | | | llvm-svn: 78097
* rip out SectionEndDirectiveSuffix support, only uses byChris Lattner2009-08-043-6/+0
| | | | | | | the masm backend. If anyone cares about masm in the future, we'll have semantic sections it can hang off of. llvm-svn: 78096
* Don't tamper with <undef> operands in MachineInstr::addRegisterKilled.Jakob Stoklund Olesen2009-08-041-3/+1
| | | | | | | For an undef operand, MO.getReg() is meaningless and we should not use it. Undef operands should be skipped entirely. llvm-svn: 78095
* LowerSubregsInstructionPass::LowerExtract should not extend the live range ↵Jakob Stoklund Olesen2009-08-041-14/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of registers. When LowerExtract eliminates an EXTRACT_SUBREG with a kill flag, it moves the kill flag to the place where the sub-register is killed. This can accidentally overlap with the use of a sibling sub-register, and we have trouble. In the test case we have this code: Live Ins: %R0 %R1 %R2 %R2L<def> = EXTRACT_SUBREG %R2<kill>, 1 %R2H<def> = LOAD16fi <fi#-1>, 0, Mem:LD(2,4) [FixedStack-1 + 0] %R1L<def> = EXTRACT_SUBREG %R1<kill>, 1 %R0L<def> = EXTRACT_SUBREG %R0<kill>, 1 %R0H<def> = ADD16 %R2H<kill>, %R2L<kill>, %AZ<imp-def>, %AN<imp-def>, %AC0<imp-def>, %V<imp-def>, %VS<imp-def> subreg: CONVERTING: %R2L<def> = EXTRACT_SUBREG %R2<kill>, 1 subreg: eliminated! subreg: killed here: %R0H<def> = ADD16 %R2H, %R2L, %R2<imp-use,kill>, %AZ<imp-def>, %AN<imp-def>, %AC0<imp-def>, %V<imp-def>, %VS<imp-def> The kill flag on %R2 is moved to the last instruction, and the live range overlaps with the definition of %R2H: *** Bad machine code: Redefining a live physical register *** - function: f - basic block: 0x18358c0 (#0) - instruction: %R2H<def> = LOAD16fi <fi#-1>, 0, Mem:LD(2,4) [FixedStack-1 + 0] Register R2H was defined but already live. The fix is to replace EXTRACT_SUBREG with IMPLICIT_DEF instead of eliminating it completely: subreg: CONVERTING: %R2L<def> = EXTRACT_SUBREG %R2<kill>, 1 subreg: replace by: %R2L<def> = IMPLICIT_DEF %R2<kill> Note that these IMPLICIT_DEF instructions survive to the asm output. It is necessary to fix the stack-color-with-reg test case because of that. llvm-svn: 78093
* Enforce stricter rules in machine code verifier.Jakob Stoklund Olesen2009-08-041-20/+15
| | | | | | | | | | | Implicit operands no longer get a free pass: Imp-use requires a live register and imp-def requires a dead register. There is also no special rule allowing redefinition of a sub-register when the super-register is live. The super register must have imp-kill+imp-def operands instead. llvm-svn: 78090
* Most flags are reserved registers on Blackfin.Jakob Stoklund Olesen2009-08-041-0/+11
| | | | | | The only exception is CC. llvm-svn: 78089
* In thumb mode, r7 is used as frame register. This fixes pr4681.Evan Cheng2009-08-041-0/+11
| | | | llvm-svn: 78086
* Match common pattern for FNMAC. Add NEON SP support.David Goodwin2009-08-042-0/+6
| | | | llvm-svn: 78085
* Legalize i64 store operations generated by inst-combine.Sanjiv Gupta2009-08-041-2/+20
| | | | llvm-svn: 78082
* Initial support for single-precision FP using NEON. Added "neonfp" attribute ↵David Goodwin2009-08-047-16/+69
| | | | | | to enable. Added patterns for some binary FP operations. llvm-svn: 78081
* Fix PR4528. This scavenger assertion is too strict. The two-address value isEvan Cheng2009-08-041-1/+2
| | | | | | | | | killed by another operand. There is probably a better fix. Either 1) scavenger can look at other operands, or 2) livevariables can be smarter about kill markers. Patches welcome. llvm-svn: 78072
* Avoid compiler warning (in -Asserts mode)Daniel Dunbar2009-08-041-2/+2
| | | | llvm-svn: 78070
* enhance codegen to put 16-bit character strings into the Chris Lattner2009-08-041-17/+15
| | | | | | __TEXT,__ustring section on darwin. llvm-svn: 78068
* fix a fixme: don't create an explicit "CStringSection" for ELF,Chris Lattner2009-08-041-9/+4
| | | | | | it is just being used as a prefix, so forward substitute it directly. llvm-svn: 78067
* Add support emiting for 2/4 byte mergable strings to the ".rodata.str*"Chris Lattner2009-08-041-12/+39
| | | | | | section on ELF targets. llvm-svn: 78066
* Ooops, I was too fast to commit the wrong fix :(Anton Korobeynikov2009-08-041-2/+2
| | | | llvm-svn: 78060
* Fix a typo - this unbreaks llvm-gcc build on armAnton Korobeynikov2009-08-041-2/+2
| | | | llvm-svn: 78059
* Thumb2 does not have ib (increment before) and da (decrement after) forms of ↵Evan Cheng2009-08-041-4/+10
| | | | | | ldm / stm. llvm-svn: 78057
* Use separate ValueList for metadata.Devang Patel2009-08-045-44/+149
| | | | | | This fixes PR4666. llvm-svn: 78056
* make MergeableCString be a SectionKind "abstract class", andChris Lattner2009-08-043-13/+37
| | | | | | | | add new concrete versions for 1/2/4-byte mergable strings. These are not actually created yet. llvm-svn: 78055
* Revert recent bitcode writer patches.Devang Patel2009-08-041-84/+94
| | | | llvm-svn: 78053
* switch ValueMap to using AssertingVH. This is an old patch I had layingChris Lattner2009-08-042-9/+9
| | | | | | around in a tree I forgot about. llvm-svn: 78048
OpenPOWER on IntegriCloud