| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 63359
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
new isOperationLegalOrCustom, which does what isOperationLegal
previously did.
Update a bunch of callers to use isOperationLegalOrCustom
instead of isOperationLegal. In some case it wasn't obvious
which behavior is desired; when in doubt I changed then to
isOperationLegalOrCustom as that preserves their previous
behavior.
This is for the second half of PR3376.
llvm-svn: 63212
|
| |
|
|
| |
llvm-svn: 63199
|
| |
|
|
| |
llvm-svn: 63120
|
| |
|
|
|
|
|
|
| |
(theoretically)
allow us to generate more efficient code. We don't do this now though :)
llvm-svn: 63027
|
| |
|
|
|
|
|
| |
prototypes, in operand type legalization. No
functionality change.
llvm-svn: 62680
|
| |
|
|
|
|
| |
multiple values. For example, a load with an illegal operand (a load produces two values, a value and chain).
llvm-svn: 62663
|
| |
|
|
|
|
|
| |
causing the limited precision stuff to produce the wrong result for values in
the range [0, 1).
llvm-svn: 62615
|
| |
|
|
| |
llvm-svn: 62571
|
| |
|
|
| |
llvm-svn: 62545
|
| |
|
|
|
|
|
| |
Split Support/Registry.h into two files so that we have less to
recompile every time CommandLine.h is changed.
llvm-svn: 62312
|
| |
|
|
| |
llvm-svn: 62307
|
| |
|
|
| |
llvm-svn: 62286
|
| |
|
|
| |
llvm-svn: 62279
|
| |
|
|
| |
llvm-svn: 62262
|
| |
|
|
| |
llvm-svn: 62256
|
| |
|
|
| |
llvm-svn: 62127
|
| |
|
|
|
|
| |
suggested by Chris.
llvm-svn: 62099
|
| |
|
|
|
|
|
|
| |
aggregate types. Don't increment the current index after reaching
the end of a struct, as it will already be pointing at
one-past-the end. This fixes PR3288.
llvm-svn: 61828
|
| |
|
|
| |
llvm-svn: 61707
|
| |
|
|
|
|
|
|
|
|
| |
promote from i1 all the way up to the canonical SetCC type.
In order to discover an appropriate type to use, pass
MVT::Other to getSetCCResultType. In order to be able to
do this, change getSetCCResultType to take a type as an
argument, not a value (this is also more logical).
llvm-svn: 61542
|
| |
|
|
| |
llvm-svn: 61398
|
| |
|
|
| |
llvm-svn: 61397
|
| |
|
|
| |
llvm-svn: 61396
|
| |
|
|
| |
llvm-svn: 61395
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This removes all the _8, _16, _32, and _64 opcodes and replaces each
group with an unsuffixed opcode. The MemoryVT field of the AtomicSDNode
is now used to carry the size information. In tablegen, the size-specific
opcodes are replaced by size-independent opcodes that utilize the
ability to compose them with predicates.
This shrinks the per-opcode tables and makes the code that handles
atomics much more concise.
llvm-svn: 61389
|
| |
|
|
|
|
| |
matching input operand with incompatible type (i.e. either one is a floating point and the other is an integer or the sizes of the types differ). SelectionDAGBuild will catch these and exit with an error.
llvm-svn: 61092
|
| |
|
|
| |
llvm-svn: 60818
|
| |
|
|
|
|
|
| |
target-independent way of determining overflow on multiplication. It's very
tricky. Patch by Zoltan Varga!
llvm-svn: 60800
|
| |
|
|
|
|
|
|
| |
MERGE_VALUES node with only one operand, so get
rid of special code that only existed to handle
that possibility.
llvm-svn: 60349
|
| |
|
|
|
|
|
| |
- Mark "add with overflow" as having a custom lowering for X86. Give it a null
lowering representation for now.
llvm-svn: 59971
|
| |
|
|
|
|
| |
vector when normalizing vector shuffles.
llvm-svn: 59900
|
| |
|
|
|
|
| |
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: 59792
|
| |
|
|
|
|
| |
DAG node type.
llvm-svn: 59788
|
| |
|
|
| |
llvm-svn: 59786
|
| |
|
|
| |
llvm-svn: 59783
|
| |
|
|
|
|
|
| |
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: 59718
|
| |
|
|
| |
llvm-svn: 59519
|
| |
|
|
| |
llvm-svn: 59504
|
| |
|
|
|
|
|
| |
can extract using different indexes for two vectors. Added a few tests
for vector shuffles.
llvm-svn: 59399
|
| |
|
|
|
|
|
| |
support targets that support these conversions. Users should avoid using
this node as the current targets don't generating code for it.
llvm-svn: 59001
|
| |
|
|
|
|
| |
<result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask>
llvm-svn: 58964
|
| |
|
|
|
|
|
|
|
| |
LLVM IR code and not in the selection DAG ISel. This is a cleaner solution.
- Fix the heuristic for determining if protectors are necessary. The previous
one wasn't checking the proper type size.
llvm-svn: 58824
|
| |
|
|
|
|
|
| |
- Get rid of "HasStackProtector" in MachineFrameInfo.
- Modify intrinsics to tell which are doing what with memory.
llvm-svn: 58799
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- stackprotector_prologue creates a stack object and stores the guard there.
- stackprotector_epilogue reads the stack guard from the stack position created
by stackprotector_prologue.
- The PrologEpilogInserter was changed to make sure that the stack guard is
first on the stack frame.
llvm-svn: 58791
|