| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 60102
|
|
|
|
|
|
| |
differ. Thanks, Duncan.
llvm-svn: 60043
|
|
|
|
| |
llvm-svn: 60016
|
|
|
|
| |
llvm-svn: 60015
|
|
|
|
|
|
|
| |
if the operands have the same sign and the sum has sign opposite to that of the
operands."
llvm-svn: 60014
|
|
|
|
|
|
|
|
|
| |
introduce any new spilling; it just uses unused registers.
Refactor the SUnit topological sort code out of the RRList scheduler and
make use of it to help with the post-pass scheduler.
llvm-svn: 59999
|
|
|
|
|
|
|
| |
- Mark "add with overflow" as having a custom lowering for X86. Give it a null
lowering representation for now.
llvm-svn: 59971
|
|
|
|
|
|
|
| |
to removePred because an SUnit can both data-depend and anti-depend
on the same SUnit.
llvm-svn: 59969
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(this doesn't happen that often, since most code
does not use illegal types) then follow it by a
DAG combiner run that is allowed to generate
illegal operations but not illegal types. I didn't
modify the target combiner code to distinguish like
this between illegal operations and illegal types,
so it will not produce illegal operations as well
as not producing illegal types.
llvm-svn: 59960
|
|
|
|
| |
llvm-svn: 59952
|
|
|
|
| |
llvm-svn: 59926
|
|
|
|
|
|
|
| |
practice these booleans are mostly produced by SetCC,
however the concept is more general.
llvm-svn: 59911
|
|
|
|
|
|
| |
vector when normalizing vector shuffles.
llvm-svn: 59900
|
|
|
|
|
|
|
|
|
|
| |
"It simplifies the type legalization part a bit, and produces better code by
teaching SelectionDAG about the extra bits in an i8 SADDO/UADDO node. In
essence, I spontaneously decided that on x86 this i8 boolean result would be
either 0 or 1, and on other platforms 0/1 or 0/-1, depending on whether the
platform likes it's boolean zero extended or sign extended."
llvm-svn: 59864
|
|
|
|
|
|
| |
- Add "promote integer type" stuff to the legalizer for these nodes.
llvm-svn: 59847
|
|
|
|
| |
llvm-svn: 59834
|
|
|
|
|
|
| |
arbitrary integer width for the count.
llvm-svn: 59823
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
g++ -m32 -c -g -DIN_GCC -W -Wall -Wwrite-strings -Wmissing-format-attribute -fno-common -mdynamic-no-pic -DHAVE_CONFIG_H -Wno-unused -DTARGET_NAME=\"i386-apple-darwin9.5.0\" -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include ../../llvm-gcc.src/gcc/llvm-types.cpp -o llvm-types.o
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemCpy(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i64' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemMove(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i64' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemSet(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i64' is not a member of 'llvm::Intrinsic'
make[3]: *** [llvm-convert.o] Error 1
make[3]: *** Waiting for unfinished jobs....
rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gpl.pod gcc.pod
make[2]: *** [all-stage1-gcc] Error 2
make[1]: *** [stage1-bubble] Error 2
make: *** [all] Error 2
llvm-svn: 59809
|
|
|
|
| |
llvm-svn: 59802
|
|
|
|
| |
llvm-svn: 59801
|
|
|
|
| |
llvm-svn: 59792
|
|
|
|
|
|
| |
DAG node type.
llvm-svn: 59788
|
|
|
|
| |
llvm-svn: 59786
|
|
|
|
| |
llvm-svn: 59785
|
|
|
|
| |
llvm-svn: 59783
|
|
|
|
|
|
| |
less mysterious.
llvm-svn: 59782
|
|
|
|
|
|
|
| |
because the boolean it returns to indicate an overflow may not be treated like
as a flag. It could be stored to memory, for instance.
llvm-svn: 59780
|
|
|
|
|
|
|
|
| |
"ISD::ADDO". ISD::ADDO is lowered into a target-independent form that does the
addition and then checks if the result is less than one of the operands. (If it
is, then there was an overflow.)
llvm-svn: 59779
|
|
|
|
| |
llvm-svn: 59777
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
schedulers. This doesn't have much immediate impact because
targets that use these schedulers by default don't yet provide
pipeline information.
This code also didn't have the benefit of register pressure
information. Also, removing it will avoid problems with list-burr
suddenly starting to do latency-oriented scheduling on x86 when we
start providing pipeline data, which would increase spilling.
llvm-svn: 59775
|
|
|
|
|
|
|
|
| |
some of the latency computation logic out of the SDNode
ScheduleDAG code into a TargetInstrItineraries helper method
to help with this.
llvm-svn: 59761
|
|
|
|
|
|
| |
condition in an addition operation.
llvm-svn: 59760
|
|
|
|
|
|
|
|
|
| |
the RR scheduler actually does look at latency values, but it
doesn't use a hazard recognizer so it has no way to know when
a no-op is needed, as opposed to just stalling and incrementing
the cycle count.
llvm-svn: 59759
|
|
|
|
| |
llvm-svn: 59727
|
|
|
|
| |
llvm-svn: 59718
|
|
|
|
| |
llvm-svn: 59702
|
|
|
|
|
|
| |
list-tdrr schedulers into a common base class.
llvm-svn: 59701
|
|
|
|
|
|
|
|
|
| |
dedicated "fast" scheduler in -fast mode instead, which is
faster. This speeds up llc -fast by a few percent on some
testcases -- the speedup only happens for code not handled by
fast-isel.
llvm-svn: 59700
|
|
|
|
|
|
|
| |
the list-burr scheduler so that it can be used by the list-tdrr
scheduler too.
llvm-svn: 59698
|
|
|
|
|
|
|
| |
extend it a bit, and make use of it in all schedulers, to
ensure consistent checking.
llvm-svn: 59689
|
|
|
|
|
|
| |
and CreateClone don't add any extra value.
llvm-svn: 59679
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is currently off by default, and can be enabled with
-disable-post-RA-scheduler=false.
This doesn't have a significant impact on most code yet because it doesn't
yet do anything to address anti-dependencies and it doesn't attempt to
disambiguate memory references. Also, several popular targets
don't have pipeline descriptions yet.
The majority of the changes here are splitting the SelectionDAG-specific
code out of ScheduleDAG, so that ScheduleDAG can be moved to
libLLVMCodeGen.a. The interface between ScheduleDAG-using code and
the rest of the scheduling code is somewhat rough and will evolve.
llvm-svn: 59676
|
|
|
|
|
|
| |
a virtual method of SelectionDAG.
llvm-svn: 59667
|
|
|
|
|
|
| |
dump in terms of it.
llvm-svn: 59665
|
|
|
|
| |
llvm-svn: 59580
|
|
|
|
|
|
| |
print in the correct order.
llvm-svn: 59567
|
|
|
|
|
|
| |
consistent with ScheduleNodeTopDown methods.
llvm-svn: 59550
|
|
|
|
| |
llvm-svn: 59549
|
|
|
|
|
|
|
|
|
| |
and FP_ROUND. Not sure what these were doing
here - probably they were sometimes (wrongly)
created with integer operands somewhere that
has since been fixed.
llvm-svn: 59548
|
|
|
|
|
|
| |
supposed to be any functionality change.
llvm-svn: 59545
|