- Aug 05, 2009
-
-
Dan Gohman authored
llvm-svn: 78139
-
Dan Gohman authored
llvm-svn: 78138
-
Dan Gohman authored
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
-
Bob Wilson authored
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
-
Dan Gohman authored
llvm-svn: 78135
-
Dan Gohman authored
fork call. This eliminates a need for <iostream>. Also remove needless fsync calls. llvm-svn: 78131
-
Owen Anderson authored
llvm-svn: 78130
-
Bruno Cardoso Lopes authored
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
-
Dan Gohman authored
Add a comment explaining why. llvm-svn: 78128
-
Jeffrey Yasskin authored
address from the reverse mapping, and add a test that this works now. llvm-svn: 78127
-
Evan Cheng authored
llvm-svn: 78126
-
Owen Anderson authored
llvm-svn: 78125
-
Owen Anderson authored
Begin the process of privatizing the type uniquing tables. No API changes yet, but there will be in the near future. llvm-svn: 78122
-
Dan Gohman authored
matches what the comment says, and it avoids spurious BitCast instructions for Argument values. llvm-svn: 78121
-
Dan Gohman authored
and 126 if it is not executable. llvm-svn: 78120
-
Chris Lattner authored
llvm-svn: 78119
-
Benjamin Kramer authored
llvm-svn: 78118
-
Owen Anderson authored
llvm-svn: 78116
-
Owen Anderson authored
Factor some of the constants+context related code out into a separate header, to make LLVMContextImpl.h not hideous. Also, fix some MSVC compile errors. llvm-svn: 78115
-
- Aug 04, 2009
-
-
Bob Wilson authored
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
-
Jakob Stoklund Olesen authored
This fixes PR4528. llvm-svn: 78107
-
Jakob Stoklund Olesen authored
Imp-def is *not* allowed to redefine a live register. Imp-use is *not* allowed to use a dead register. llvm-svn: 78106
-
Mike Stump authored
llvm-svn: 78105
-
Evan Cheng authored
llvm-svn: 78104
-
Chris Lattner authored
still get "intel syntax" instructions from llc with -x86-asm-syntax=intel llvm-svn: 78103
-
David Goodwin authored
llvm-svn: 78101
-
Daniel Dunbar authored
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
-
Owen Anderson authored
llvm-svn: 78097
-
Chris Lattner authored
the masm backend. If anyone cares about masm in the future, we'll have semantic sections it can hang off of. llvm-svn: 78096
-
Jakob Stoklund Olesen authored
For an undef operand, MO.getReg() is meaningless and we should not use it. Undef operands should be skipped entirely. llvm-svn: 78095
-
Jakob Stoklund Olesen authored
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
-
Jakob Stoklund Olesen authored
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
-
Jakob Stoklund Olesen authored
The only exception is CC. llvm-svn: 78089
-
Evan Cheng authored
llvm-svn: 78086
-
David Goodwin authored
llvm-svn: 78085
-
Sanjiv Gupta authored
llvm-svn: 78082
-
David Goodwin authored
Initial support for single-precision FP using NEON. Added "neonfp" attribute to enable. Added patterns for some binary FP operations. llvm-svn: 78081
-
Evan Cheng authored
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
-
Daniel Dunbar authored
llvm-svn: 78070
-
Chris Lattner authored
__TEXT,__ustring section on darwin. llvm-svn: 78068
-