| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
| 
| 
|  | 
Use MDNodes to encode debug info in llvm IR.
llvm-svn: 80406
 | 
| | 
| 
| 
|  | 
llvm-svn: 80116
 | 
| | 
| 
| 
|  | 
llvm-svn: 80073
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well.
This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!)
llvm-svn: 79977
 | 
| | 
| 
| 
| 
| 
|  | 
update all code that this affects.
llvm-svn: 79830
 | 
| | 
| 
| 
|  | 
llvm-svn: 79742
 | 
| | 
| 
| 
| 
| 
|  | 
just falling through the end.
llvm-svn: 79383
 | 
| | 
| 
| 
| 
| 
|  | 
SRA_PARTS, as is done for SRL, SHL, and SRA.
llvm-svn: 79380
 | 
| | 
| 
| 
|  | 
llvm-svn: 79133
 | 
| | 
| 
| 
|  | 
llvm-svn: 79087
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
libcall. Take advantage of this in the ARM backend to rectify broken
choice of CC when hard float is in effect. PIC16 may want to see if
it could be of use in MakePIC16Libcall, which works unchanged.
Patch by Sandeep!
llvm-svn: 79033
 | 
| | 
| 
| 
|  | 
llvm-svn: 78948
 | 
| | 
| 
| 
| 
| 
|  | 
infrastructure work needed to get the contexts to where they need to be first.
llvm-svn: 78759
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
while
the latter is capable of representing either a primitive or an extended type.
llvm-svn: 78713
 | 
| | 
| 
| 
| 
| 
|  | 
own struct type.
llvm-svn: 78610
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Instead of awkwardly encoding calling-convention information with ISD::CALL,
ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering
provides three virtual functions for targets to override:
LowerFormalArguments, LowerCall, and LowerRet, which replace the custom
lowering done on the special nodes. They provide the same information, but
in a more immediately usable format.
This also reworks much of the target-independent tail call logic. The
decision of whether or not to perform a tail call is now cleanly split
between target-independent portions, and the target dependent portion
in IsEligibleForTailCallOptimization.
This also synchronizes all in-tree targets, to help enable future
refactoring and feature work.
llvm-svn: 78142
 | 
| | 
| 
| 
|  | 
llvm-svn: 77635
 | 
| | 
| 
| 
|  | 
llvm-svn: 77516
 | 
| | 
| 
| 
|  | 
llvm-svn: 77495
 | 
| | 
| 
| 
|  | 
llvm-svn: 77494
 | 
| | 
| 
| 
|  | 
llvm-svn: 77366
 | 
| | 
| 
| 
| 
| 
|  | 
thanks to contexts-on-types.  More to come.
llvm-svn: 77011
 | 
| | 
| 
| 
|  | 
llvm-svn: 76987
 | 
| | 
| 
| 
|  | 
llvm-svn: 76153
 | 
| | 
| 
| 
|  | 
llvm-svn: 75840
 | 
| | 
| 
| 
|  | 
llvm-svn: 75703
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
 | 
| | 
| 
| 
| 
| 
|  | 
The blackfin processor has a legal i16 type, but only logic operations on i32.
llvm-svn: 75419
 | 
| | 
| 
| 
|  | 
llvm-svn: 75418
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
 | 
| | 
| 
| 
| 
| 
|  | 
and abort()/exit() -> llvm_report_error().
llvm-svn: 75363
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
value.  Adjust other code to deal with that correctly.  Make 
DAGTypeLegalizer::PromoteIntRes_EXTRACT_VECTOR_ELT take advantage of 
this new flexibility to simplify the code and make it deal with unusual 
vectors (like <4 x i1>) correctly.  Fixes PR3037.
llvm-svn: 75176
 | 
| | 
| 
| 
|  | 
llvm-svn: 75153
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
arguments in a vararg call.
With the SVR4 ABI on PowerPC, vector arguments for vararg calls are passed differently depending on whether they are a fixed or a variable argument. Variable vector arguments always go into memory, fixed vector arguments are put 
into vector registers. If there are no free vector registers available, fixed vector arguments are put on the stack.
The NumFixedArgs attribute allows to decide for an argument in a vararg call whether it belongs to the fixed or variable portion of the parameter list.
llvm-svn: 74764
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This change doubles the allowable value for MVT::LAST_VALUETYPE. It does
this by doing several things.
1. Introduces MVT::MAX_ALLOWED_LAST_VALUETYPE which in this change has a
value of 64.  This value contains the current maximum for the
MVT::LAST_VALUETYPE.
2. Instead of checking "MVT::LAST_VALUETYPE <= 32", all of those uses
now become "MVT::LAST_VALUETYPE <= MVT::MAX_ALLOWED_LAST_VALUETYPE"
3. Changes the dimension of the ValueTypeActions from 2 elements to four
elements and adds comments ahead of the declaration indicating the it is
"(MVT::MAX_ALLOWED_LAST_VALUETYPE/32) * 2".  This at least lets us find
what is affected if and when MVT::MAX_ALLOWED_LAST_VALUETYPE gets
changed.
4. Adds initializers for the new elements of ValueTypeActions.
This does NOT add any types in MVT. That would be done separately.
This doubles the size of ValueTypeActions from 64 bits to 128 bits and
gives us the freedom to add more types for AVX.
llvm-svn: 74110
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
support for x86, and UMULO/SMULO for many architectures, including PPC 
(PR4201), ARM, and Cell. The resulting expansion isn't perfect, but it's
not bad.
llvm-svn: 73477
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
on x86 to handle more cases.  Fix a bug in said code that would cause it 
to read past the end of an object.  Rewrite the code in 
SelectionDAGLegalize::ExpandBUILD_VECTOR to be a bit more general. 
Remove PerformBuildVectorCombine, which is no longer necessary with 
these changes.  In addition to simplifying the code, with this change, 
we can now catch a few more cases of consecutive loads.
llvm-svn: 73012
 | 
| | 
| 
| 
| 
| 
|  | 
types.
llvm-svn: 72993
 | 
| | 
| 
| 
|  | 
llvm-svn: 72992
 | 
| | 
| 
| 
| 
| 
| 
|  | 
This patch removes some special cases for opcodes and does a bit of 
cleanup.
llvm-svn: 72536
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
failure during llvm-gcc bootstrap:
Assertion failed: (!Tmp2.getNode() && "Can't legalize BR_CC with legal condition!"), function ExpandNode, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp, line 2923.
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/gcc/libgcc2.c:1727: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
llvm-svn: 72530
 | 
| | 
| 
| 
|  | 
llvm-svn: 72516
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
This is basically the end of this series of patches for LegalizeDAG; the 
remaining special cases can't be removed without more infrastructure 
work.  There's a FIXME for each relevant opcode near the beginning of
SelectionDAGLegalize::LegalizeOp.
llvm-svn: 72514
 | 
| | 
| 
| 
| 
| 
|  | 
some special cases are necessary.
llvm-svn: 72511
 | 
| | 
| 
| 
|  | 
llvm-svn: 72509
 | 
| | 
| 
| 
| 
| 
|  | 
BUILD_VECTOR.
llvm-svn: 72469
 | 
| | 
| 
| 
|  | 
llvm-svn: 72468
 | 
| | 
| 
| 
|  | 
llvm-svn: 72467
 | 
| | 
| 
| 
|  | 
llvm-svn: 72465
 | 
| | 
| 
| 
|  | 
llvm-svn: 72464
 |