- Mar 11, 2014
-
-
Fariborz Jahanian authored
to setting of ObjC linkages. //rdar://16206443 llvm-svn: 203521
-
Evan Cheng authored
llvm-svn: 203520
-
Matt Arsenault authored
These were all shifting the same amount as the bitwidth. llvm-svn: 203519
-
Matt Arsenault authored
llvm-svn: 203518
-
Matt Arsenault authored
llvm-svn: 203517
-
Matt Arsenault authored
llvm-svn: 203516
-
Matt Arsenault authored
llvm-svn: 203515
-
Matt Arsenault authored
llvm-svn: 203514
-
Duncan P. N. Exon Smith authored
During LTO, user-supplied definitions of C library functions often exist. -instcombine uses Module::getOrInsertFunction() to get a handle on library functions (e.g., @puts, when optimizing @printf). Previously, Module::getOrInsertFunction() would rename any matching functions with local linkage, and create a new declaration. In LTO, this is the opposite of desired behaviour, as it skips by the user-supplied version of the library function and creates a new undefined reference which the linker often cannot resolve. After some discussing with Rafael on the list, it looks like it's undesired behaviour. If a consumer actually *needs* this behaviour, we should add new API with a more explicit name. I added two testcases: one specifically for the -instcombine behaviour and one for the LTO flow. <rdar://problem/16165191> llvm-svn: 203513
-
Jason Molenda authored
llvm-svn: 203512
-
Ben Langmuir authored
This started failing for me the last time someone modified the AST file format. It would be nice if we could just have lit take care of the module cache used during testing for us, but this helps in the meantime. llvm-svn: 203511
-
DeLesley Hutchins authored
to -Wthread-safety. llvm-svn: 203510
-
- Mar 10, 2014
-
-
Raul E. Silvera authored
the legalization cost must be included to get an accurate estimation of the total cost of the scalarized vector. The inaccurate cost triggered unprofitable SLP vectorization on 32-bit X86. Summary: Include legalization overhead when computing scalarization cost Reviewers: hfinkel, nadav CC: chandlerc, rnk, llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2992 llvm-svn: 203509
-
Diego Novillo authored
Summary: When the sample profiles include discriminator information, use the discriminator values to distinguish instruction weights in different basic blocks. This modifies the BodySamples mapping to map <line, discriminator> pairs to weights. Instructions on the same line but different blocks, will use different discriminator values. This, in turn, means that the blocks may have different weights. Other changes in this patch: - Add tests for positive values of line offset, discriminator and samples. - Change data types from uint32_t to unsigned and int and do additional validation. Reviewers: chandlerc CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2857 llvm-svn: 203508
-
Anton Yartsev authored
llvm-svn: 203507
-
Ben Langmuir authored
This warning (under -Wincomplete-umbrella) diagnoses cases that are difficult to understand without the compiler's help, since the symptom is likely to be that you are missing the contents of headers that are mistakenly omitted from a module. This seems like a good thing to have on by default (with the usual caveat for -Wsystem-headers). llvm-svn: 203506
-
Hafiz Abid Qadeer authored
llvm-svn: 203505
-
Adrian Prantl authored
older versions of LLDB. llvm-svn: 203504
-
John McCall authored
Previously, we would always emit them with internal linkage, but with hidden visibility when the function was hidden, which is an illegal combination, which could lead LLVM to actually emit them as strong hidden symbols with hilarious results. rdar://16265084 llvm-svn: 203503
-
Manuel Jacob authored
llvm-svn: 203502
-
Ahmed Charles authored
This will allow using an early return statement in a subsequent change. llvm-svn: 203501
-
Tobias Grosser authored
1) The isl_int -> isl_val changes are the ones Tobias suggested. One additional isl_val_free is added (and needed) 2) Three scoplib_vector_free are added, maybe we would need even more (and matrix_free) but it's hard to place them right. 3) Cleaned the includes (and removed 'extern C') This fixes the broken compilation for the scoplib import and export. Contributed-by:
Johannes Doerfert <doerfert@cs.uni-saarland.de> llvm-svn: 203500
-
Mark Lacey authored
llvm-svn: 203499
-
Daniel Dunbar authored
llvm-svn: 203498
-
Daniel Dunbar authored
- Also, update MANIFEST.in and utils/check-sdist. llvm-svn: 203497
-
Daniel Dunbar authored
llvm-svn: 203496
-
Sebastian Pop authored
to avoid build errors like this: In file included from ../include/llvm/IR/IntrinsicInst.h:30:0, from ../tools/polly/lib/CodeGen/BlockGenerators.cpp:28: ../include/llvm/IR/Intrinsics.h:41:34: fatal error: llvm/IR/Intrinsics.gen: No such file or directory llvm-svn: 203495
-
Marshall Clow authored
Add tests for LWG issue #2356. Stability of erasure in unordered associative containers. Libc++ already does this, but now we have tests for it. llvm-svn: 203494
-
David Majnemer authored
Summary: 'Expected' should only be modified if the operation fails. This fixes PR18899. Reviewers: chandlerc, rsmith, rjmccall CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2922 llvm-svn: 203493
-
Sebastian Pop authored
llvm-svn: 203492
-
Michael J. Spencer authored
llvm-svn: 203491
-
Justin Bogner authored
Extend the error message generated by the Verifier when an intrinsic name does not match the expected mangling to include the expected name. Simplifies debugging. Patch by Philip Reames! llvm-svn: 203490
-
Benjamin Kramer authored
MemCpyOpt: When merging memsets also merge the trivial case of two memsets with the same destination. The testcase is from PR19092, but I think the bug described there is actually a clang issue. llvm-svn: 203489
-
Evan Cheng authored
optimize a call to a llvm intrinsic to something that invovles a call to a C library call, make sure it sets the right calling convention on the call. e.g. extern double pow(double, double); double t(double x) { return pow(10, x); } Compiles to something like this for AAPCS-VFP: define arm_aapcs_vfpcc double @t(double %x) #0 { entry: %0 = call double @llvm.pow.f64(double 1.000000e+01, double %x) ret double %0 } declare double @llvm.pow.f64(double, double) #1 Simplify libcall (part of instcombine) will turn the above into: define arm_aapcs_vfpcc double @t(double %x) #0 { entry: %__exp10 = call double @__exp10(double %x) #1 ret double %__exp10 } declare double @__exp10(double) The pre-instcombine code works because calls to LLVM builtins are special. Instruction selection will chose the right calling convention for the call. However, the code after instcombine is wrong. The call to __exp10 will use the C calling convention. I can think of 3 options to fix this. 1. Make "C" calling convention just work since the target should know what CC is being used. This doesn't work because each function can use different CC with the "pcs" attribute. 2. Have Clang add the right CC keyword on the calls to LLVM builtin. This will work but it doesn't match the LLVM IR specification which states these are "Standard C Library Intrinsics". 3. Fix simplify libcall so the resulting calls to the C routines will have the proper CC keyword. e.g. %__exp10 = call arm_aapcs_vfpcc double @__exp10(double %x) #1 This works and is the solution I implemented here. Both solutions #2 and #3 would work. After carefully considering the pros and cons, I decided to implement #3 for the following reasons. 1. It doesn't change the "spec" of the intrinsics. 2. It's a self-contained fix. There are a couple of potential downsides. 1. There could be other places in the optimizer that is broken in the same way that's not addressed by this. 2. There could be other calling conventions that need to be propagated by simplify-libcall that's not handled. But for now, this is the fix that I'm most comfortable with. llvm-svn: 203488
-
Ed Maste authored
llvm-svn: 203487
-
Sebastian Pop authored
llvm-svn: 203486
-
Eli Bendersky authored
[forgot to 'svn add' before committing r203483] llvm-svn: 203485
-
Sasa Stankovic authored
* Add masking instructions before loads and stores (in MC layer). * Add masking instructions after SP changes (in MC layer). * Forbid loads, stores and SP changes in delay slots (in MI layer). Differential Revision: http://llvm-reviews.chandlerc.com/D2904 llvm-svn: 203484
-
Eli Bendersky authored
NVPTX, like the other backends, relies on generic symbol name sanitizing done by MCSymbol. However, the ptxas assembler is more stringent and disallows some additional characters in symbol names. See PR19099 for more details. llvm-svn: 203483
-
Tim Northover authored
Patch by Manuel Jacob. llvm-svn: 203482
-