- Oct 11, 2007
-
-
Arnold Schwaighofer authored
enabled by passing -tailcallopt to llc. The optimization is performed if the following conditions are satisfied: * caller/callee are fastcc * elf/pic is disabled OR elf/pic enabled + callee is in module + callee has visibility protected or hidden llvm-svn: 42870
-
- Oct 09, 2007
-
-
Dan Gohman authored
llvm-svn: 42787
-
- Oct 08, 2007
-
-
Dan Gohman authored
use ISD::{S,U}DIVREM and ISD::{S,U}MUL_HIO. Move the lowering code associated with these operators into target-independent in LegalizeDAG.cpp and TargetLowering.cpp. llvm-svn: 42762
-
- Sep 29, 2007
-
-
Evan Cheng authored
llvm-svn: 42459
-
- Sep 28, 2007
-
-
Rafael Espindola authored
The only generated code difference is that now we call memcpy when the size of the array is unknown. This matches GCC behavior and is better since the run time value can be arbitrarily large. llvm-svn: 42433
-
- Sep 25, 2007
-
-
Dan Gohman authored
llvm-svn: 42313
-
Dan Gohman authored
both results with a single div or idiv instruction. This uses new X86ISD nodes for DIV and IDIV which are introduced during the legalize phase so that the SelectionDAG's CSE can automatically eliminate redundant computations. llvm-svn: 42308
-
Evan Cheng authored
Added support for new condition code modeling scheme (i.e. physical register dependency). These are a bunch of instructions that are duplicated so the x86 backend can support both the old and new schemes at the same time. They will be deleted after all the kinks are worked out. llvm-svn: 42285
-
- Sep 23, 2007
-
-
Dale Johannesen authored
keep f32 in SSE registers and f64 in x87. This is effectively a new codegen mode. Change addLegalFPImmediate to permit float and double variants to do different things. Adjust callers. llvm-svn: 42246
-
- Sep 17, 2007
-
-
Evan Cheng authored
llvm-svn: 42037
-
- Sep 14, 2007
-
-
Rafael Espindola authored
llvm-svn: 41953
-
- Aug 31, 2007
-
-
Rafael Espindola authored
llvm-svn: 41643
-
- Aug 25, 2007
-
-
Chris Lattner authored
changing the interface to allow for future changes. llvm-svn: 41384
-
- Aug 15, 2007
-
-
Anton Korobeynikov authored
hard to catch bugs with retaddr lowering llvm-svn: 41104
-
- Aug 02, 2007
-
-
Dan Gohman authored
llvm-svn: 40757
-
- Jul 27, 2007
-
-
Duncan Sands authored
llvm-svn: 40566
-
Dan Gohman authored
Make the alignedload and alignedstore patterns always require 16-byte alignment. This way when they are used in the "Fs" instructions, in which a vector instruction is used for a scalar purpose, they can still require the full vector alignment. And add a regression test for this. llvm-svn: 40555
-
Evan Cheng authored
llvm-svn: 40547
-
- Jul 26, 2007
-
-
Dan Gohman authored
x86 target, replacing them with the new alignment attributes on memory references. llvm-svn: 40504
-
- Jul 14, 2007
-
-
Anton Korobeynikov authored
This patch fills the last necessary bits to enable exceptions handling in LLVM. Currently only on x86-32/linux. In fact, this patch adds necessary intrinsics (and their lowering) which represent really weird target-specific gcc builtins used inside unwinder. After corresponding llvm-gcc patch will land (easy) exceptions should be more or less workable. However, exceptions handling support should not be thought as 'finished': I expect many small and not so small glitches everywhere. llvm-svn: 39855
-
- Jul 10, 2007
-
-
Dan Gohman authored
in addition to the intrinsic forms. Add spill-folding entries for these new instructions, and for the scalar min and max instrinsic instructions which were missing. And add some preliminary ISelLowering code for using the new non-intrinsic vector sqrt instruction, and fneg and fabs. llvm-svn: 38478
-
- Jun 22, 2007
-
-
Dan Gohman authored
TargetLowering to SelectionDAG so that they have more convenient access to the current DAG, in preparation for the ValueType routines being changed from standalone functions to members of SelectionDAG for the pre-legalize vector type changes. llvm-svn: 37704
-
- Apr 24, 2007
-
-
Bill Wendling authored
vector_shuffle v1, v2, <2, 6, 3, 7> I.e. vector_shuffle v, undef, <2, 2, 3, 3> MMX only has a shuffle for v4i16 vectors. It needs to use the unpackh for this type of operation. llvm-svn: 36403
-
- Apr 20, 2007
-
-
Lauro Ramos Venancio authored
X86 32 bits. llvm-svn: 36283
-
- Apr 17, 2007
-
-
Anton Korobeynikov authored
Also, fixed static case in presence of eax livin. This fixes PR331 PS: Why don't we still have push/pop instructions? :) llvm-svn: 36195
-
- Apr 10, 2007
-
-
Chris Lattner authored
llvm-svn: 35845
-
Chris Lattner authored
llvm-svn: 35840
-
- Mar 31, 2007
-
-
Chris Lattner authored
llvm-svn: 35521
-
- Mar 25, 2007
-
-
Chris Lattner authored
not just the first letter. No functionality change. llvm-svn: 35322
-
- Mar 21, 2007
-
-
Dale Johannesen authored
llvm-svn: 35245
-
- Mar 13, 2007
-
-
Evan Cheng authored
a legal target address immediate or scale. llvm-svn: 35073
-
- Mar 03, 2007
-
-
Evan Cheng authored
llvm-svn: 34857
-
- Feb 28, 2007
-
-
Chris Lattner authored
llvm-svn: 34730
-
- Feb 26, 2007
-
-
Chris Lattner authored
llvm-svn: 34625
-
- Feb 25, 2007
-
-
Chris Lattner authored
llvm-svn: 34587
-
Chris Lattner authored
function. This function now uses GetRetValueLocs to determine *where* the result values are located and concerns itself with *how* to pull the values out. llvm-svn: 34586
-
Chris Lattner authored
registers out from the logic of *how* to return them. This changes X86-64 to mark EAX live out when returning a 32-bit value, where before it marked RAX liveout. llvm-svn: 34582
-
- Jan 29, 2007
-
-
Nate Begeman authored
address nodes. llvm-svn: 33636
-
- Jan 28, 2007
-
-
Anton Korobeynikov authored
1. New parameter attribute called 'inreg'. It has meaning "place this parameter in registers, if possible". This is some generalization of gcc's regparm(n) attribute. It's currently used only in X86-32 backend. 2. Completely rewritten CC handling/lowering code inside X86 backend. Merged stdcall + c CCs and fastcall + fast CC. 3. Dropped CSRET CC. We cannot add struct return variant for each target-specific CC (e.g. stdcall + csretcc and so on). 4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in on first attribute has meaning 'This is hidden pointer to structure return. Handle it gently'. 5. Fixed small bug in llvm-extract + add new feature to FunctionExtraction pass, which relinks all internal-linkaged callees from deleted function to external linkage. This will allow further linking everything together. NOTEs: 1. Documentation will be updated soon. 2. llvm-upgrade should be improved to translate csret => sret. Before this, there will be some unexpected test fails. llvm-svn: 33597
-
- Jan 05, 2007
-
-
Evan Cheng authored
or'ing in the sign bit of operand 1. - Tweaking: rather than left shift the sign bit, fp_extend operand 1 first before taking its sign bit if its type is smaller than that of operand 0. llvm-svn: 32932
-