- Jun 04, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 132624
-
Jakob Stoklund Olesen authored
A TableGen backend can define how certain classes can be expanded into ordered sets of defs, typically by evaluating a specific field in the record. The SetTheory class can then evaluate DAG expressions that refer to these named sets. A number of standard set and list operations are predefined, and the backend can add more specialized operators if needed. The -print-sets backend is used by SetTheory.td to provide examples. This is intended to simplify how register classes are defined: def GR32_NOSP : RegisterClass<"X86", [i32], 32, (sub GR32, ESP)>; llvm-svn: 132621
-
- Jun 03, 2011
-
-
Nick Lewycky authored
llvm-svn: 132537
-
Jakob Stoklund Olesen authored
Some register classes are only used for instruction operand constraints. They should never be used for virtual registers. Previously, those register classes were given an empty allocation order, but now you can say 'let isAllocatable=0' in the register class definition. TableGen calculates if a register is part of any allocatable register class, and makes that information available in TargetRegisterDesc::inAllocatableClass. The goal here is to eliminate use cases for overriding allocation_order_* methods. llvm-svn: 132508
-
- Jun 01, 2011
-
-
Joerg Sonnenberger authored
llvm-svn: 132395
-
- May 31, 2011
-
-
Bruno Cardoso Lopes authored
must be encoded decremented by one. Only add encoding tests for ssat16 because ssat can't be parsed yet. llvm-svn: 132324
-
- May 30, 2011
-
-
Rafael Espindola authored
directives. Fixes PR9826. llvm-svn: 132317
-
Rafael Espindola authored
same dwarf number. This will be used for creating a dwarf number to register mapping. The only case that needs this so far is the XMM/YMM registers that unfortunately do have the same numbers. llvm-svn: 132314
-
- May 28, 2011
-
-
John McCall authored
switch. With this newfound organization, teach tblgen how not to give all intrinsics the 'nounwind' attribute. Introduce a new intrinsic, llvm.eh.resume, which does not have this attribute. Documentation and uses to follow. llvm-svn: 132252
-
Rafael Espindola authored
There was no way to check if a given register/mode pair was valid. We now return an error code (-2) instead of asserting. If anyone thinks that an assert at this point is really needed, we can autogen a hasValidDwarfRegNum instead. llvm-svn: 132236
-
- May 25, 2011
-
-
Argyrios Kyrtzidis authored
-Emit an empty warning option as string ("") instead of 0. -For diagnostic names also emit the size of the string. llvm-svn: 132046
-
- May 23, 2011
-
-
Bill Wendling authored
operands to an instruction aren't great, so an iterative search is fairly quick and doesn't have the overhead of std::map. llvm-svn: 131886
-
- May 19, 2011
-
-
Cameron Zwarich authored
the root if there is only one such node. This leaves only 2 verifier failures in the entire test suite when running "make check". llvm-svn: 131677
-
- May 18, 2011
-
-
Tanya Lattner authored
In r131488 I misunderstood how VREV works. It splits the vector in half and splits each half. Therefore, the real problem was that we were using a VREV64 for a 4xi16, when we should have been using a VREV32. Updated test case and reverted change to the PerfectShuffle Table. llvm-svn: 131529
-
- May 17, 2011
-
-
Tanya Lattner authored
vrev is incorrectly defined in the perfect shuffle table. The ordering is backwards (should be 0x3210 versus 0x1032) which exposed a bug when doing a shuffle on a 4xi16. I've attached a test case. llvm-svn: 131488
-
- May 10, 2011
-
-
Jakob Stoklund Olesen authored
Ambiguous sub-register index compositions are OK as long as the backend writer knows what he is doing. llvm-svn: 131134
-
- May 09, 2011
-
-
Mon P Wang authored
llvm-svn: 131085
-
- May 07, 2011
-
-
Jakob Stoklund Olesen authored
The RegisterInfo.td file should only specify the indexes that sources need to refer to. The rest is inferred. llvm-svn: 131058
-
- May 06, 2011
-
-
Jim Grosbach authored
error is detected is a good thing. llvm-svn: 131005
-
Jim Grosbach authored
llvm-svn: 131004
-
- May 05, 2011
-
-
Mikhail Glushenkov authored
llvm-svn: 130914
-
- May 04, 2011
-
-
Nick Lewycky authored
not, I'll just add them here and be done with it. llvm-svn: 130819
-
- May 03, 2011
-
-
Jim Grosbach authored
llvm-svn: 130779
-
- Apr 29, 2011
-
-
Eli Friedman authored
Filter out pattterns from the FastISel emitter which it doesn't actually know how to handle. No significant functionality change at the moment, but it's necessary for some changes I'm planning. llvm-svn: 130547
-
Nick Lewycky authored
under cmake). Add libprofile_rt.a so that we can tell clang to link against it in --coverage mode. Also turn it on by default in cmake builds. Oscar, this touches a change you made for EXCLUDE_FROM_ALL support -- I think I've done the right thing, but please let me know (or fix and commit) if not! llvm-svn: 130470
-
- Apr 28, 2011
-
-
Owen Anderson authored
Fix a bug in tblgen that caused incorrect encodings on instructions that specified operands with "bit" instead of "bits<1>". Unfortunately, my only testcase for this is fragile, and the ARM AsmParser can't round trip the instruction in question. <rdar://problem/9345702> llvm-svn: 130410
-
- Apr 24, 2011
-
-
Mikhail Glushenkov authored
llvm-svn: 130092
-
- Apr 23, 2011
-
-
Jay Foad authored
llvm-svn: 130068
-
- Apr 22, 2011
-
-
Johnny Chen authored
print out ldr, not ldr.n. rdar://problem/9267772 llvm-svn: 130008
-
Bob Wilson authored
This is needed so the front-end can see "aligned" attributes on the type for the pointer arguments. Radar 9311427. llvm-svn: 129964
-
- Apr 21, 2011
-
-
Jakob Stoklund Olesen authored
These values were not used for anything. Spill size and alignment is a property of the register class, not the register. llvm-svn: 129906
-
- Apr 20, 2011
-
-
Jakob Stoklund Olesen authored
On the x86-64 and thumb2 targets, some registers are more expensive to encode than others in the same register class. Add a CostPerUse field to the TableGen register description, and make it available from TRI->getCostPerUse. This represents the cost of a REX prefix or a 32-bit instruction encoding required by choosing a high register. Teach the greedy register allocator to prefer cheap registers for busy live ranges (as indicated by spill weight). llvm-svn: 129864
-
- Apr 18, 2011
-
-
Eric Christopher authored
true on success and false on failure. Update callers. llvm-svn: 129722
-
Owen Anderson authored
llvm-svn: 129708
-
Chris Lattner authored
the generated FastISel. X86 doesn't need to generate code to match ADD16ri8 since ADD16ri will do just fine. This is a small codesize win in the generated instruction selector. llvm-svn: 129692
-
Chris Lattner authored
value constraints on them (when defined as ImmLeaf's). This is particularly important for X86-64, where almost all reg/imm instructions take a i64immSExt32 immediate operand, which has a value constraint. Before this patch we ended up iseling the examples into such amazing code as: movabsq $7, %rax imulq %rax, %rdi movq %rdi, %rax ret now we produce: imulq $7, %rdi, %rax ret This dramatically shrinks the generated code at -O0 on x86-64. llvm-svn: 129691
-
Chris Lattner authored
No functionality change. llvm-svn: 129680
-
Chris Lattner authored
since the strings are always exactly one character, and there are usually only 2-3 operands. llvm-svn: 129678
-
Chris Lattner authored
llvm-svn: 129677
-
Chris Lattner authored
kind of predicate: one that is specific to imm nodes. The predicate function specified here just checks an int64_t directly instead of messing around with SDNode's. The virtue of this is that it means that fastisel and other things can reason about these predicates. llvm-svn: 129675
-