- Dec 12, 2012
-
-
John McCall authored
My variadics patch, r169588, changed these calls to typically be bitcasts rather than calls to a supposedly variadic function. This totally subverted a hack where we intentionally dropped excess arguments from such calls in order to appease the inliner and a "warning" from the optimizer. This patch extends the hack to also work with bitcasts, as well as teaching it to rewrite invokes. llvm-svn: 170034
-
- Dec 10, 2012
-
-
Bill Wendling authored
llvm-svn: 169778
-
Bill Wendling authored
llvm-svn: 169768
-
Chad Rosier authored
Also, add the -S option. llvm-svn: 169763
-
Bill Wendling authored
This prevents the functions generated by that pass from using the red zone. <rdar://problem/12843084> llvm-svn: 169755
-
Michael Ilseman authored
llvm-svn: 169743
-
- Dec 07, 2012
-
-
John McCall authored
We were emitting calls to blocks as if all arguments were required --- i.e. with signature (A,B,C,D,...) rather than (A,B,...). This patch fixes that and accounts for the implicit block-context argument as a required argument. In addition, this patch changes the function type under which we call unprototyped functions on platforms like x86-64 that guarantee compatibility of variadic functions with unprototyped function types; previously we would always call such functions under the LLVM type T (...)*, but now we will call them under the type T (A,B,C,D,...)*. This last change should have no material effect except for making the type conventions more explicit; it was a side-effect of the most convenient implementation. llvm-svn: 169588
-
- Dec 06, 2012
-
-
NAKAMURA Takumi authored
clang/test/CodeGen/2008-01-07-UnusualIntSize.c: Add triple x86_64. It doesn't assume 32-bit target, for now. llvm-svn: 169492
-
Chandler Carruth authored
generally support the C++11 memory model requirements for bitfield accesses by relying more heavily on LLVM's memory model. The primary change this introduces is to move from a manually aligned and strided access pattern across the bits of the bitfield to a much simpler lump access of all bits in the bitfield followed by math to extract the bits relevant for the particular field. This simplifies the code significantly, but relies on LLVM to intelligently lowering these integers. I have tested LLVM's lowering both synthetically and in benchmarks. The lowering appears to be functional, and there are no really significant performance regressions. Different code patterns accessing bitfields will vary in how this impacts them. The only real regressions I'm seeing are a few patterns where the LLVM code generation for loads that feed directly into a mask operation don't take advantage of the x86 ability to do a smaller load and a cheap zero-extension. This doesn't regress any benchmark in the nightly test suite on my box past the noise threshold, but my box is quite noisy. I'll be watching the LNT numbers, and will look into further improvements to the LLVM lowering as needed. llvm-svn: 169489
-
- Dec 05, 2012
-
-
Chad Rosier authored
-fasm-blocks flag, not the -fms-extensions flag. rdar://12808010 llvm-svn: 169422
-
Chad Rosier authored
llvm-svn: 169411
-
- Dec 04, 2012
-
-
Michael Ilseman authored
Have clang use LLVM IR's fast-math flags when in FastMath or FiniteMathOnly modes. Test cases included. llvm-svn: 169191
-
- Dec 02, 2012
-
-
Will Dietz authored
llvm-svn: 169114
-
- Dec 01, 2012
-
-
Eli Bendersky authored
In preparation for the FileCheck enhancement to support backreferences. llvm-svn: 169090
-
Bill Wendling authored
Don't emit a warning with an input/output parameter. We assume the user knows what they're doing here. llvm-svn: 169059
-
Bill Wendling authored
the output size is greater than the register size. No truncation occurs with those. Reword warning to make it clearer what's the problem is. llvm-svn: 169054
-
- Nov 30, 2012
-
-
Quentin Colombet authored
llvm-svn: 168968
-
Eli Friedman authored
llvm-svn: 168959
-
- Nov 28, 2012
-
-
Manman Ren authored
rdar://12723368 llvm-svn: 168821
-
Manman Ren authored
the original parameter or return type. Since we do not accurately represent the data fields of a union, we should not directly load or store a union type. As an exmple, if we have i8,i8, i32, i32 as one field type and i32,i32 as another field type, the first field type will be chosen to represent the union. If we load with the union's type, the 3rd byte and the 4th byte will be skipped. rdar://12723368 llvm-svn: 168820
-
Richard Smith authored
string literal needs cleaning (because it contains line-splicing in the encoding prefix or in the ud-suffix), do not clean the section between the double-quotes -- that's the "raw" bit! llvm-svn: 168776
-
- Nov 27, 2012
-
-
Will Dietz authored
Introduces new sanitizer "unsigned-integer-overflow". llvm-svn: 168701
-
Bill Schmidt authored
ELF ABI. Complex values are to be passed in registers as though the real and imaginary parts were passed as separate parameters. Prior to this patch, complex values were passed as byval aggregates. It turns out that specifying getDirect() for all complex types when classifying the argument type results in the desired behavior. The new Clang test case verifies that the correct LLVM IR is generated for caller and callee for each of the underlying types for _Complex. llvm-svn: 168673
-
- Nov 26, 2012
-
-
Sebastian Pop authored
Clean up the existing test to use FileCheck. llvm-svn: 168607
-
- Nov 23, 2012
-
-
Joey Gouly authored
llvm-svn: 168510
-
- Nov 17, 2012
-
-
Benjamin Kramer authored
Also fixes a bit/byte mismatch when checking if a target supports atomic ops of a certain size. llvm-svn: 168260
-
- Nov 16, 2012
-
-
Eli Friedman authored
Make sure CodeGenTypes correctly reconverts function types. Fixes PR14355, a crash in IR generation. llvm-svn: 168112
-
- Nov 14, 2012
-
-
Eli Friedman authored
type as written from the ParmVarDecl; it's unclear whether the standard (C99 6.9.1p10) requires this, but we're following the precedent set by gcc, and hopefully nobody will ever ask about this again. PR9559 / <rdar://problem/12621983>. llvm-svn: 167985
-
Eric Christopher authored
Approved by Chris Lattner. llvm-svn: 167983
-
Eric Christopher authored
temporarily since it breaks the gdb bots. This reverts commit r167807/30305bec25cac981c6d4a3b8be004401310a82a7. llvm-svn: 167887
-
- Nov 13, 2012
-
-
Bill Wendling authored
If we have a type 'int a[1]' and a type 'int b[0]', the generated DWARF is the same for both of them because we use the 'upper_bound' attribute. Instead use the 'count' attrbute, which gives the correct number of elements in the array. <rdar://problem/12566646> llvm-svn: 167807
-
Eli Friedman authored
PR11777. llvm-svn: 167802
-
- Nov 12, 2012
-
-
Bill Wendling authored
llvm-svn: 167763
-
Bill Wendling authored
llvm-svn: 167761
-
Bill Wendling authored
llvm-svn: 167748
-
Bill Wendling authored
The 'a', 'c', and 'd' constraints on i386 mean a 32-bit register. We cannot place a 64-bit value into the 32-bit register. Error out instead of causing the compiler to spew general badness. <rdar://problem/12415959> llvm-svn: 167717
-
- Nov 10, 2012
-
-
Michael Liao authored
- New options '-mrtm'/'-mno-rtm' are added to enable/disable RTM feature - Builtin macro '__RTM__' is defined if RTM feature is enabled - RTM intrinsic header is added and introduces 3 new intrinsics, namely '_xbegin', '_xend', and '_xabort'. - 3 new builtins are added to keep compatible with gcc, namely '__builtin_ia32_xbegin', '__builtin_ia32_xend', and '__builtin_ia32_xabort'. - Test cases for pre-defined macro and new intrinsic codegen are added. llvm-svn: 167665
-
Meador Inge authored
Some holes in testing where discovered while working on the LLVM library call simplifiers. llvm-svn: 167661
-
Justin Holewinski authored
Fixes bug 13354. llvm-svn: 167647
-
- Nov 08, 2012
-
-
NAKAMURA Takumi authored
llvm/ConstantFolding.cpp: Make ReadDataFromGlobal() and FoldReinterpretLoadFromConstPtr() Big-endian-aware. llvm-svn: 167595
-