- Jun 20, 2011
-
-
Chris Lattner authored
all over the place in different styles and variants. Standardize on two preferred entrypoints: one that takes a StructType and ArrayRef, and one that takes StructType and varargs. In cases where there isn't a struct type convenient, we now add a ConstantStruct::getAnon method (whose name will make more sense after a few more patches land). It would be "really really nice" if the ConstantStruct::get and ConstantVector::get methods didn't make temporary std::vectors. llvm-svn: 133412
-
- Jun 19, 2011
-
-
Chris Lattner authored
much cleaner. llvm-svn: 133364
-
- Jun 16, 2011
-
-
Chris Lattner authored
llvm-svn: 133195
-
Dylan Noblesmith authored
Follow up to r133032. llvm-svn: 133107
-
- Jun 15, 2011
-
-
http://google1.osuosl.org:8011/builders/clang-i686-freebsd/builds/3548Argyrios Kyrtzidis authored
llvm-svn: 133081
-
Argyrios Kyrtzidis authored
llvm-svn: 133075
-
- May 22, 2011
-
-
Nick Lewycky authored
use these soon. llvm-svn: 131812
-
- May 18, 2011
-
-
Duncan Sands authored
can be used to turn a <4 x i64> into a <4 x i32> but getCastOpcode would assert if you passed these types to it. Note that this strictly extends the previous functionality: if getCastOpcode previously accepted two vector types (i.e. didn't assert) then it still will and returns the same opcode (BitCast). That's because before it would only accept vectors with the same bitwidth, and the new code only touches vectors with the same length. However if two vectors have both the same bitwidth and the same length then their element types have the same bitwidth, so the new logic will return BitCast as before. llvm-svn: 131530
-
- May 11, 2011
-
-
Oscar Fuentes authored
gcc. Fixes PR9886. llvm-svn: 131181
-
- Apr 28, 2011
-
-
Lenny Maiorani authored
Remove bounded StringRef::compare() since nothing but Clang SA was using it and it is just as easy to use StringRef::substr() preceding StringRef::compare() to achieve the same thing. llvm-svn: 130430
-
- Apr 21, 2011
-
-
Jay Foad authored
llvm-svn: 129932
-
- Apr 15, 2011
-
-
Lenny Maiorani authored
Implements StringRef::compare with bounds. It is behaves similarly to strncmp(). Unit tests also included. llvm-svn: 129582
-
- Apr 11, 2011
-
-
Jay Foad authored
llvm-svn: 129271
-
- Apr 01, 2011
-
-
Duncan Sands authored
had gotten out of sync: isCastable didn't think it was possible to cast the x86_mmx type to anything, while it did think it possible to cast an i64 to x86_mmx. llvm-svn: 128705
-
- Mar 31, 2011
-
-
Duncan Sands authored
llvm-svn: 128622
-
- Mar 30, 2011
-
-
Benjamin Kramer authored
Avoid turning a floating point division with a constant power of two into a denormal multiplication. Some platforms may treat denormals as zero, on other platforms multiplication with a subnormal is slower than dividing by a normal. llvm-svn: 128555
-
Benjamin Kramer authored
The idea is, that if an ieee 754 float is divided by a power of two, we can turn the division into a cheaper multiplication. This function sees if we can get an exact multiplicative inverse for a divisor and returns it if possible. This is the hard part of PR9587. I tested many inputs against llvm-gcc's frotend implementation of this optimization and didn't find any difference. However, floating point is the land of weird edge cases, so any review would be appreciated. llvm-svn: 128545
-
Jay Foad authored
PHINode::Create() giving the (known or expected) number of operands. llvm-svn: 128537
-
Jay Foad authored
llvm-svn: 128535
-
- Mar 17, 2011
-
-
Benjamin Kramer authored
Add an argument to APInt's magic udiv calculation to specify the number of bits that are known zero in the divided number. This will come in handy soon. llvm-svn: 127828
-
- Mar 02, 2011
-
-
Oscar Fuentes authored
Patch by Erik Olofsson! llvm-svn: 126796
-
- Feb 21, 2011
-
-
Duncan Sands authored
should be that if the phi is used by a side-effect free instruction with no uses then the phi and the instruction now get zapped (checked by the unittest). llvm-svn: 126124
-
Cameron Zwarich authored
of a constant had a minor typo introduced when copying it from the book, which caused it to favor negative approximations over positive approximations in many cases. Positive approximations require fewer operations beyond the multiplication. In the case of division by 3, we still generate code that is a single instruction larger than GCC's code. llvm-svn: 126097
-
- Feb 20, 2011
-
-
Oscar Fuentes authored
Requires CMake 2.8.3 or newer. llvm-svn: 126092
-
Nick Lewycky authored
test for that. With this change, test/CodeGen/X86/codegen-dce.ll no longer finds any instructions to DCE, so delete the test. Also renamed J and JP to I and IP in RecursivelyDeleteDeadPHINode. llvm-svn: 126088
-
Nick Lewycky authored
by Andrew Clinton! llvm-svn: 126077
-
- Feb 11, 2011
-
-
Zhanyong Wan authored
on the host OS. Reviewed by dgregor. llvm-svn: 125406
-
- Feb 04, 2011
-
-
Daniel Dunbar authored
by Clang. llvm-svn: 124871
-
- Feb 03, 2011
-
-
Duncan Sands authored
the loop. llvm-svn: 124784
-
- Feb 02, 2011
-
-
Duncan Sands authored
may be useful to understand "none", this is not the place for it. Tweak the fix to Normalize while there: the fix added in 123990 works correctly, but I like this way better. Finally, now that Triple understands some non-trivial environment values, teach the unittests about them. llvm-svn: 124720
-
- Jan 27, 2011
-
-
Chris Lattner authored
Don't infinitely recurse! Patch by Marius Wachtler! llvm-svn: 124366
-
- Jan 21, 2011
-
-
Renato Golin authored
Clang was not parsing target triples involving EABI and was generating wrong IR (wrong PCS) and passing the wrong information down llc via the target-triple printed in IR. I've fixed this by adding the parsing of EABI into LLVM's Triple class and using it to choose the correct PCS in Clang's Tools. A Clang patch is on its way to use this infrastructure. llvm-svn: 123990
-
- Jan 15, 2011
-
-
Michael J. Spencer authored
llvm-svn: 123546
-
Rafael Espindola authored
llvm-svn: 123529
-
- Jan 13, 2011
-
-
Oscar Fuentes authored
llvm-svn: 123377
-
Rafael Espindola authored
llvm-svn: 123358
-
- Jan 08, 2011
-
-
Rafael Espindola authored
Add a unnamed_addr bit to global variables and functions. This will be used to indicate that the address is not significant and therefore the constant or function can be merged with others. If an optimization pass can show that an address is not used, it can set this. Examples of things that can have this set by the FE are globals created to hold string literals and C++ constructors. Adding unnamed_addr to a non-const global should have no effect unless an optimization can transform that global into a constant. Aliases are not allowed to have unnamed_addr since I couldn't figure out any use for it. llvm-svn: 123063
-
- Jan 07, 2011
-
-
Jay Foad authored
llvm-svn: 123026
-
- Jan 06, 2011
-
-
Michael J. Spencer authored
llvm-svn: 122948
-
Michael J. Spencer authored
llvm-svn: 122947
-