- Jun 16, 2011
-
-
John McCall authored
llvm-svn: 133108
-
Owen Anderson authored
Add a new MVT::untyped. This will be used in future work for modelling ISA features like register pairs and lists with "interesting" constraints (such as ARM NEON contiguous register lists or even-odd paired registers). We need to be able to generate these instructions (often from intrinsics), but don't want to have to assign a legal type to them. Instead, we'll use an "untyped" edge to bypass the type-checking and simply ensure that the register classes match. llvm-svn: 133106
-
Jakob Stoklund Olesen authored
This simplifies many of the target description files since it is common for register classes to be related or contain sequences of numbered registers. I have verified that this doesn't change the files generated by TableGen for ARM and X86. It alters the allocation order of MBlaze GPR and Mips FGR32 registers, but I believe the change is benign. llvm-svn: 133105
-
- Jun 15, 2011
-
-
Eli Friedman authored
llvm-svn: 133086
-
Rafael Espindola authored
llvm-svn: 133085
-
Rafael Espindola authored
llvm-svn: 133083
-
John McCall authored
optimizations when emitting calls to the function; instead those calls may use faster relocations which require the function to be immediately resolved upon loading the dynamic object featuring the call. This is useful when it is known that the function will be called frequently and pervasively and therefore there is no merit in delaying binding of the function. Currently only implemented for x86-64, where it turns into a call through the global offset table. Patch by Dan Gohman, who assures me that he's going to add LangRef documentation for this once it's committed. llvm-svn: 133080
-
Eli Friedman authored
llvm-svn: 133078
-
Jim Grosbach authored
Re-apply 133010, with fixes for inline assembler. Original commit message: "When an assembler local symbol is used but not defined in a module, a Darwin assembler wants to issue a diagnostic to that effect." Added fix to only perform the check when finalizing, as otherwise we're not done and undefined symbols may simply not have been encountered yet. Passes "make check" and a self-host check on Darwin. llvm-svn: 133071
-
Jakob Stoklund Olesen authored
Note that this actually changes code generation, and someone who understands this target better should check the changes. - R12Q is now allocatable. I think it was omitted from the allocation order by mistake since it isn't reserved. It as apparently used as a GOT pointer sometimes, and it should probably be reserved if that is the case. - The GR64 registers are allocated in a different order now. The register allocator will automatically put the CSRs last. There were other changes to the order that may have been significant. The test fix is because r0 and r1 swapped places in the allocation order. llvm-svn: 133067
-
-
Andrew Trick authored
Added a test case for handling physreg aliases during pre-RA-sched. llvm-svn: 133063
-
Roman Divacky authored
Patch by Nathan Whitehorn! llvm-svn: 133059
-
Nadav Rotem authored
llvm-svn: 133057
-
Nadav Rotem authored
Enable the simplification of truncating-store after fixing the usage of GetDemandBits (which must operate on the vector element type). Fix the a usage of getZeroExtendInReg which must also be done on scalar types. llvm-svn: 133052
-
Owen Anderson authored
Replace the statically generated hashtables for checking register relationships with just scanning the (typically tiny) static lists. At the time I wrote this code (circa 2007), TargetRegisterInfo was using a std::set to perform these queries. Switching to the static hashtables was an obvious improvement, but in reality there's no reason to do anything other than scan. With this change, total LLC time on a whole-program 403.gcc is reduced by approximately 1.5%, almost all of which comes from a 15% reduction in LiveVariables time. It also reduces the binary size of LLC by 86KB, thanks to eliminating a bunch of very large static tables. llvm-svn: 133051
-
Nick Lewycky authored
Unfortunately we can't follow what the rest of the language does (wrapping it in double-quotes) because that would cause an ambiguity with metadata strings, so instead we escape any unusual characters with \xx escaping. llvm-svn: 133050
-
Bob Wilson authored
llvm-svn: 133047
-
Eli Friedman authored
Stop using memdep for a check that didn't really make sense with memdep. In terms of specific issues, using memdep here checks irrelevant instructions and won't work properly once we start returning "unknown" more aggressively from memdep. llvm-svn: 133035
-
Evan Cheng authored
the bits being cleared by the AND are not demanded by the BFI. The previous BFI dag combine rule was actually incorrect (or used to be correct until BFI representation changed). rdar://9609030 llvm-svn: 133034
-
Ted Kremenek authored
toString() now takes an optional bool argument that, depending on the radix, adds the appropriate prefix to the integer's string representation that makes it into a meaningful C literal, e.g.: hexademical: '-f' becomes '-0xf' octal: '77' becomes '077' binary: '110' becomes '0b110' Patch by nobled@dreamwidth.org! llvm-svn: 133032
-
Eli Friedman authored
Add "unknown" results for memdep, which mean "I don't know whether a dependence for the given instruction exists in the given block". This cleans up all the existing hacks in memdep which represent this concept by returning clobber with various unrelated instructions. llvm-svn: 133031
-
Tanya Lattner authored
Add an optimization that looks for a specific pair-wise add pattern and generates a vpaddl instruction instead of scalarizing the add. Includes a test case. llvm-svn: 133027
-
Anna Zaks authored
llvm-svn: 133023
-
Chad Rosier authored
converted to add x,x if x is a undef. add undef, undef does not guarantee that the resulting low order bit is zero. Fixes <rdar://problem/9453156> and <rdar://problem/9487392>. llvm-svn: 133022
-
Eli Friedman authored
PR10136: fix PPCTargetLowering::LowerCall_SVR4 so that a necessary CopyToReg doesn't appear to be dead. Roman, since you're writing tests for other PPC-SVR4 vararg-related stuff, would you mind writing a test for this? llvm-svn: 133018
-
Anna Zaks authored
llvm-svn: 133017
-
- Jun 14, 2011
-
-
Jim Grosbach authored
Apparently llvm itself generates undefined assembler local labels, causing self-hosting problems with this patch. Reverting until that's sorted out. llvm-svn: 133013
-
Jim Grosbach authored
When an assembler local symbol is used but not defined in a module, a Darwin assembler wants to issue a diagnostic to that effect. rdar://9559714 llvm-svn: 133010
-
Eli Friedman authored
llvm-svn: 133007
-
Rafael Espindola authored
Dan noted that this would work on the case shown on the commit message. I think the case that was failing was a bb ending with a redundant conditional jump: ... jne foo foo: ... I was unable to find any such case in the tests or in a debug build of clang, so I will revert this part of the patch and watch the bots. llvm-svn: 133004
-
Evan Cheng authored
llvm-svn: 133002
-
Rafael Espindola authored
llvm-svn: 132995
-
Rafael Espindola authored
llvm-svn: 132988
-
Nadav Rotem authored
Add a testcase for checking the integer-promotion of many different vector types (with power of two types such as 8,16,32 .. 512). Fix a bug in the integer promotion of bitcast nodes. Enable integer expanding only if the target of the conversion is an integer (when the type action is scalarize). Add handling to the legalization of vector load/store in cases where the saved vector is integer-promoted. llvm-svn: 132985
-
Nadav Rotem authored
llvm-svn: 132984
-
Cameron Zwarich authored
llvm-svn: 132982
-
Rafael Espindola authored
AnalyzeBranch. llvm-svn: 132981
-
Bruno Cardoso Lopes authored
or instruction cache access. Update the targets to match it and also teach autoupgrade. llvm-svn: 132976
-
Rafael Espindola authored
sharp all or nothing transition when one extra predecessor was added. Now we still test first ones for merging. llvm-svn: 132974
-