- Aug 06, 2010
-
-
Eric Christopher authored
llvm-svn: 110422
-
Nate Begeman authored
llvm-svn: 110419
-
Dan Gohman authored
to IntrReadWriteArgMem, as it's for reading as well as writing. llvm-svn: 110395
-
- Jul 31, 2010
-
-
Bill Wendling authored
later to identify and possibly remove superfluous compare instructions -- those that are testing for and setting a status flag that should already be set. llvm-svn: 109901
-
- Jul 30, 2010
-
-
Jim Grosbach authored
have 4 bits per register in the operand encoding), but have undefined behavior when the operand value is 13 or 15 (SP and PC, respectively). The trivial coalescer in linear scan sometimes will merge a copy from SP into a subsequent instruction which uses the copy, and if that instruction cannot legally reference SP, we get bad code such as: mls r0,r9,r0,sp instead of: mov r2, sp mls r0, r9, r0, r2 This patch adds a new register class for use by Thumb2 that excludes the problematic registers (SP and PC) and is used instead of GPR for those operands which cannot legally reference PC or SP. The trivial coalescer explicitly requires that the register class of the destination for the COPY instruction contain the source register for the COPY to be considered for coalescing. This prevents errant instructions like that above. PR7499 llvm-svn: 109842
-
- Jul 28, 2010
-
-
Bob Wilson authored
llvm-svn: 109605
-
Eric Christopher authored
llvm-svn: 109572
-
- Jul 27, 2010
-
-
Mikhail Glushenkov authored
Also fix some comments. llvm-svn: 109499
-
- Jul 26, 2010
-
-
Eric Christopher authored
llvm-svn: 109407
-
- Jul 23, 2010
-
-
Mikhail Glushenkov authored
llvmc can be now compiled with llvm-gcc on Windows. llvm-svn: 109215
-
- Jul 22, 2010
-
-
Eric Christopher authored
llvm-svn: 109043
-
- Jul 20, 2010
-
-
Chris Lattner authored
llvm-svn: 108893
-
Bruno Cardoso Lopes authored
llvm-svn: 108769
-
- Jul 19, 2010
-
-
Mikhail Glushenkov authored
llvm-svn: 108718
-
Mikhail Glushenkov authored
llvm-svn: 108714
-
Daniel Dunbar authored
TblGen/AsmMatcher: Add support for honoring instruction Requires<[]> attributes as part of the matcher. - Currently includes a hack to limit ourselves to "In32BitMode" and "In64BitMode", because we don't have the other infrastructure to properly deal with setting SSE, etc. features on X86. llvm-svn: 108677
-
Mikhail Glushenkov authored
llvm-svn: 108673
-
- Jul 17, 2010
-
-
Bill Wendling authored
llvm-svn: 108571
-
Bill Wendling authored
thus is a much more meaningful name. llvm-svn: 108563
-
- Jul 12, 2010
-
-
Duncan Sands authored
llvm-svn: 108130
-
- Jul 11, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 108071
-
- Jul 10, 2010
-
-
Dan Gohman authored
- Check getBytesToPopOnReturn(). - Eschew ST0 and ST1 for return values. - Fix the PIC base register initialization so that it doesn't ever fail to end up the top of the entry block. llvm-svn: 108039
-
- Jul 09, 2010
-
-
Bruno Cardoso Lopes authored
notes: - The instructions are being added with dummy placeholder patterns using some 256 specifiers, this is not meant to work now, but since there are some multiclasses generic enough to accept them, when we go for codegen, the stuff will be already there. - Add VEX encoding bits to support YMM - Add MOVUPS and MOVAPS in the first round - Use "Y" as suffix for those Instructions: MOVUPSYrr, ... - All AVX instructions in X86InstrSSE.td will move soon to a new X86InstrAVX file. llvm-svn: 107996
-
Bob Wilson authored
U utils/TableGen/FastISelEmitter.cpp --- Reverse-merging r107943 into '.': U test/CodeGen/X86/fast-isel.ll U test/CodeGen/X86/fast-isel-loads.ll U include/llvm/Target/TargetLowering.h U include/llvm/Support/PassNameParser.h U include/llvm/CodeGen/FunctionLoweringInfo.h U include/llvm/CodeGen/CallingConvLower.h U include/llvm/CodeGen/FastISel.h U include/llvm/CodeGen/SelectionDAGISel.h U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/CallingConvLower.cpp U lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp U lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp U lib/CodeGen/SelectionDAG/FastISel.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp U lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp U lib/CodeGen/SelectionDAG/InstrEmitter.cpp U lib/CodeGen/SelectionDAG/TargetLowering.cpp U lib/Target/XCore/XCoreISelLowering.cpp U lib/Target/XCore/XCoreISelLowering.h U lib/Target/X86/X86ISelLowering.cpp U lib/Target/X86/X86FastISel.cpp U lib/Target/X86/X86ISelLowering.h llvm-svn: 107987
-
Dan Gohman authored
llvm-svn: 107947
-
- Jul 08, 2010
-
-
Dale Johannesen authored
Add explicit testcases for tail calls within the same module. Duplicate some code to humor those who think .w doesn't apply on ARM. Leave this disabled on Thumb1, and add some comments explaining why it's hard and won't gain much. llvm-svn: 107851
-
Dan Gohman authored
Debug info intrinsics win for now. llvm-svn: 107850
-
Chris Lattner authored
in the integrated assembler. Still some discussion to be done. llvm-svn: 107825
-
- Jul 07, 2010
-
-
Dan Gohman authored
around everywhere, and also give it an InsertPt member, to enable isel to operate at an arbitrary position within a block, rather than just appending to a block. llvm-svn: 107791
-
- Jul 03, 2010
-
-
Jakob Stoklund Olesen authored
The COPY instruction is intended to replace the target specific copy instructions for virtual registers as well as the EXTRACT_SUBREG and INSERT_SUBREG instructions in MachineFunctions. It won't we used in a selection DAG. COPY is lowered to native register copies by LowerSubregs. llvm-svn: 107529
-
- Jul 02, 2010
-
-
Jakob Stoklund Olesen authored
list of predefined instructions appear. Add some consistency checks. Ideally, TargetOpcodes.h should be produced by TableGen from Target.td, but it is hardly worth the effort. llvm-svn: 107520
-
- Jun 25, 2010
-
-
Duncan Sands authored
llvm-svn: 106834
-
Bob Wilson authored
names for the array fields. llvm-svn: 106803
-
Bob Wilson authored
llvm-svn: 106795
-
Bob Wilson authored
the array fields in these structs. llvm-svn: 106794
-
- Jun 23, 2010
-
-
Nico Weber authored
llvm-svn: 106671
-
Bruno Cardoso Lopes authored
Given the pattern below as an example: list<dag> Pattern = [(set RC:$dst, (v4f32 (shufp:src3 RC:$src1, (mem_frag addr:$src2))))]; The right reference resolving should lead to: list<dag> Pattern = [(set VR128:$dst, (v4f32 (shufp:src3 VR128:$src1, (mem_frag addr:$src2))))]; But was yielding: list<dag> Pattern = [(set VR128:$dst, (v4f32 (shufp VR128:$src1, (mem_frag addr:$src2))))]; Fix this by passing the right name when creating a new DagInit node. llvm-svn: 106670
-
Nick Lewycky authored
Haiku like Linux provides <regex.h>, so use it. Patch by Paul Davey! llvm-svn: 106620
-
- Jun 22, 2010
-
-
Bruno Cardoso Lopes authored
a toplevel 'defm', make sure to properly resolve references. llvm-svn: 106570
-
- Jun 21, 2010
-
-
Eric Christopher authored
llvm-svn: 106470
-