| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 22498
|
| |
|
|
|
|
| |
places the constants in the allocated memory, rather than a malloc area
llvm-svn: 22497
|
| |
|
|
|
|
| |
are relocated with globals, not with .text), and allow targets to have a GOT managed for them
llvm-svn: 22496
|
| |
|
|
| |
llvm-svn: 22495
|
| |
|
|
|
|
|
|
| |
Remove the LoadHiAddr pseudo-instruction.
Optimization of stores to and loads from statics.
Force JIT to use new non-PIC codepaths.
llvm-svn: 22494
|
| |
|
|
| |
llvm-svn: 22493
|
| |
|
|
| |
llvm-svn: 22490
|
| |
|
|
|
|
| |
PowerPC gets subtarget support up.
llvm-svn: 22489
|
| |
|
|
|
|
| |
compiled to llvm.sqrt.
llvm-svn: 22488
|
| |
|
|
|
|
| |
8-byte align doubles.
llvm-svn: 22486
|
| |
|
|
|
|
|
|
| |
* Made bullet points start with a verb and lowercase, since they are not
complete sentences
* Cleaned up grammar, removed extraneous verbosity
llvm-svn: 22485
|
| |
|
|
| |
llvm-svn: 22484
|
| |
|
|
|
|
|
|
| |
explained in the comment.
This fixes UnitTests/2003-09-18-BitFieldTest on darwin
llvm-svn: 22483
|
| |
|
|
| |
llvm-svn: 22480
|
| |
|
|
| |
llvm-svn: 22479
|
| |
|
|
|
|
| |
automatically generated from a target description.
llvm-svn: 22470
|
| |
|
|
| |
llvm-svn: 22469
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the first incremental patch to implement this feature. It adds no
functionality to LLVM but setup up the information needed from targets in
order to implement the optimization correctly. Each target needs to specify
the maximum number of store operations for conversion of the llvm.memset,
llvm.memcpy, and llvm.memmove intrinsics into a sequence of store operations.
The limit needs to be chosen at the threshold of performance for such an
optimization (generally smallish). The target also needs to specify whether
the target can support unaligned stores for multi-byte store operations.
This helps ensure the optimization doesn't generate code that will trap on
an alignment errors.
More patches to follow.
llvm-svn: 22468
|
| |
|
|
| |
llvm-svn: 22467
|
| |
|
|
| |
llvm-svn: 22466
|
| |
|
|
|
|
| |
as a signed compare. This patch may fix PR597, but is correct in any case.
llvm-svn: 22465
|
| |
|
|
|
|
|
| |
expand the code to work for all integer datatypes. This should unbreak
alpha.
llvm-svn: 22464
|
| |
|
|
|
|
|
|
| |
for the command line options. This helps with situations where the executable
name sought is too generic and a more meaningful name needs to be used for
the command line options. It also helps satisfy picky project leaders.
llvm-svn: 22461
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* FIND_STD_PROGRAM will find a program in the path or using --with options
and verify that the path/bin/program is executable. Also allows checking
for include files and libraries. If found, USE_PROGRAM is set, otherwise
its not set. Also sets PROGRAM_BIN (bin directory), and PROGRAM_DIR (top
level directory). If headers are found, sets PROGRAM_INC. If libraries
are found, sets PROGRAM_LIB.
* CHECK_PROGRAM_SANITY can be used to run a program with some option that
only produces information output and requires no input. If the output
matches a regular expression, the program passes the sanity check.
Otherwise, an error occurs.
llvm-svn: 22458
|
| |
|
|
|
|
| |
This allows is to not emit empty sections when .data or .bss is not used.
llvm-svn: 22457
|
| |
|
|
| |
llvm-svn: 22456
|
| |
|
|
| |
llvm-svn: 22455
|
| |
|
|
| |
llvm-svn: 22454
|
| |
|
|
|
|
|
|
|
|
|
| |
vector that represents the .o file at once, build up a vector for each
section of the .o file. This is needed because the .o file writer needs
to be able to switch between sections as it emits them (e.g. switch
between the .text section and the .rel section when emitting code).
This patch has no functionality change.
llvm-svn: 22453
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the target natively supports. This eliminates some special-case code from
the x86 backend and generates better code as well.
For an i8 to f64 conversion, before & after:
_x87 before:
subl $2, %esp
movb 6(%esp), %al
movsbw %al, %ax
movw %ax, (%esp)
filds (%esp)
addl $2, %esp
ret
_x87 after:
subl $2, %esp
movsbw 6(%esp), %ax
movw %ax, (%esp)
filds (%esp)
addl $2, %esp
ret
_sse before:
subl $12, %esp
movb 16(%esp), %al
movsbl %al, %eax
cvtsi2sd %eax, %xmm0
addl $12, %esp
ret
_sse after:
subl $12, %esp
movsbl 16(%esp), %eax
cvtsi2sd %eax, %xmm0
addl $12, %esp
ret
llvm-svn: 22452
|
| |
|
|
| |
llvm-svn: 22451
|
| |
|
|
| |
llvm-svn: 22450
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
legalizer to eliminate them. With this comes the expected code quality
improvements, such as, for this:
double foo(unsigned short X) { return X; }
we now generate this:
_foo:
subl $4, %esp
movzwl 8(%esp), %eax
movl %eax, (%esp)
fildl (%esp)
addl $4, %esp
ret
instead of this:
_foo:
subl $4, %esp
movw 8(%esp), %ax
movzwl %ax, %eax ;; Load not folded into this.
movl %eax, (%esp)
fildl (%esp)
addl $4, %esp
ret
-Chris
llvm-svn: 22449
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
SelectionDAGLegalize::ExpandLegalUINT_TO_FP method.
Add a new method, PromoteLegalUINT_TO_FP, which allows targets to request
that UINT_TO_FP operations be promoted to a larger input type. This is
useful for targets that have some UINT_TO_FP or SINT_TO_FP operations but
not all of them (like X86).
The same should be done with SINT_TO_FP, but this patch does not do that
yet.
llvm-svn: 22447
|
| |
|
|
| |
llvm-svn: 22446
|
| |
|
|
|
|
| |
should be looking at CGI.TheDef->getName().
llvm-svn: 22445
|
| |
|
|
| |
llvm-svn: 22443
|
| |
|
|
|
|
| |
working, and Olden/power.
llvm-svn: 22441
|
| |
|
|
| |
llvm-svn: 22440
|
| |
|
|
|
|
|
|
| |
printed as part of the opcode. This allows something like
cmp${cc}ss in the x86 backed to be printed as cmpltss, cmpless, etc.
depending on what the value of $cc is.
llvm-svn: 22439
|
| |
|
|
|
|
| |
turn into a C predecrement operator.
llvm-svn: 22438
|
| |
|
|
|
|
|
|
| |
Add parenthesis around the value being negated; that way, if the value
begins with a minus sign (e.g. negative integer), we won't generate a
C predecrement operator by mistake.
llvm-svn: 22437
|
| |
|
|
|
|
| |
gv and Graphviz.
llvm-svn: 22434
|
| |
|
|
|
|
|
| |
we actually get the path and not $GRAPHVIZ as the value.
* Add a #define for the gv program (HAVE_GV) and its value LLVM_PATH_GV.
llvm-svn: 22433
|
| |
|
|
| |
llvm-svn: 22432
|
| |
|
|
| |
llvm-svn: 22430
|
| |
|
|
| |
llvm-svn: 22429
|
| |
|
|
| |
llvm-svn: 22428
|
| |
|
|
|
|
|
| |
GRAPHVIZ will contain the path to the program if its found (or "echo Graphviz"
if not) and the #define HAVE_GRAPHVIZ will be defined if its found.
llvm-svn: 22424
|
| |
|
|
|
|
| |
of pthreads is missing that call (despite it violating the spec).
llvm-svn: 22423
|