summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* If a module map is found in a relative -I path, convert the filenames within itRichard Smith2014-03-115-26/+73
| | | | | | | | to absolute paths when building the includes file for the module. Without this, the module build would fail, because the relative paths we were using are not necessarily relative to a directory in our include path. llvm-svn: 203528
* R600: Calculate store mask instead of using switch.Matt Arsenault2014-03-111-17/+3
| | | | llvm-svn: 203527
* Add helpers for getting scalar sizes of vector value types.Matt Arsenault2014-03-112-0/+12
| | | | llvm-svn: 203526
* Add a unittest for the ExternalASTSource.Richard Smith2014-03-112-0/+84
| | | | llvm-svn: 203525
* X86: Enable ISel of 16-bit MOVBE instructions.Jim Grosbach2014-03-113-13/+42
| | | | | | | | | | | | | | | | | When the MOVBE instructions are available, use them for 16-bit endian swapping as well as for 32 and 64 bit. The patterns were already present on the instructions, but weren't being matched because the operation was unconditionally marked to 'Expand.' Change that to be conditional on whether the MOVBE instructions are available. Use 'rolw' to implement the in-register version (32 and 64 bit have the dedicated 'bswap' instruction for that). Patch by Louis Gerbarg <lgg@apple.com>. rdar://15479984 llvm-svn: 203524
* MultiJITTest.cpp: Tweak getPointerToNamedFunction() to be aware of also ↵NAKAMURA Takumi2014-03-111-0/+8
| | | | | | | | | | | | Windows x64. In import thunk, jmp is: - On x86, 0xFF 0x25 [disp32]. - On x64, 0xFF 0x25 [pcrel32]. See also my r144178. llvm-svn: 203523
* Basic: Add -Wswitch-bool to control warn_bool_switch_conditionDavid Majnemer2014-03-113-4/+4
| | | | | | | | This warning was missing a flag, add one. test/Misc/warning-flags.c has one fewer entry. llvm-svn: 203522
* Objective-C IRGen. Fixes several regressions caused by changes madeFariborz Jahanian2014-03-112-5/+64
| | | | | | to setting of ObjC linkages. //rdar://16206443 llvm-svn: 203521
* Follow up to r203488. Code clean up to eliminate a lot of copy+paste.Evan Cheng2014-03-111-215/+35
| | | | llvm-svn: 203520
* Fix undefined behavior in vector shift tests.Matt Arsenault2014-03-115-65/+65
| | | | | | These were all shifting the same amount as the bitwidth. llvm-svn: 203519
* Remove incomplete commentMatt Arsenault2014-03-111-2/+0
| | | | llvm-svn: 203518
* Move trivial getter into header.Matt Arsenault2014-03-112-7/+4
| | | | llvm-svn: 203517
* Use .data() instead of &x[0]Matt Arsenault2014-03-111-2/+2
| | | | llvm-svn: 203516
* Fix indentationMatt Arsenault2014-03-111-9/+8
| | | | llvm-svn: 203515
* Fix non 2-space indentation.Matt Arsenault2014-03-111-73/+73
| | | | llvm-svn: 203514
* Module: Don't rename in getOrInsertFunction()Duncan P. N. Exon Smith2014-03-103-10/+76
| | | | | | | | | | | | | | | | | | | | | | | 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
* Minor fix for a logging message.Jason Molenda2014-03-101-1/+1
| | | | llvm-svn: 203512
* Add -fmodules-cache-path to test/Headers/c11.cBen Langmuir2014-03-101-1/+2
| | | | | | | | 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
* Thread safety analysis: move smart pointer checks from -Wthread-safety-betaDeLesley Hutchins2014-03-101-27/+19
| | | | | | to -Wthread-safety. llvm-svn: 203510
* When analyzing vectors of element type that require legalization,Raul E. Silvera2014-03-103-18/+60
| | | | | | | | | | | | | | | | | | 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
* Use discriminator information in sample profiles.Diego Novillo2014-03-1011-91/+254
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* [analyzer] Eliminate memory leak in BugReporter::emitReport()Anton Yartsev2014-03-101-2/+5
| | | | llvm-svn: 203507
* Turn on the uncovered umbrella header warning by defaultBen Langmuir2014-03-101-1/+1
| | | | | | | | | | 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
* Fix Mingw build error by using lower case name for windows header files.Hafiz Abid Qadeer2014-03-105-5/+5
| | | | llvm-svn: 203505
* xfail a test on darwin because some of the public buildbots are stuck onAdrian Prantl2014-03-101-0/+4
| | | | | | older versions of LLDB. llvm-svn: 203504
* RTTI symbols for visible local types may need weak linkage.John McCall2014-03-102-1/+39
| | | | | | | | | | | 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
* Test commit: Remove trailing whitespace.Manuel Jacob2014-03-101-4/+4
| | | | llvm-svn: 203502
* Add a main function to the clang-format.py vim integration.Ahmed Charles2014-03-101-40/+43
| | | | | | This will allow using an early return statement in a subsequent change. llvm-svn: 203501
* Ported scoplib to use isl_val * instead of isl_intTobias Grosser2014-03-103-71/+91
| | | | | | | | | | | | | 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
* Fix a couple typos.Mark Lacey2014-03-101-2/+2
| | | | llvm-svn: 203499
* [lit] Bump dev version number.Daniel Dunbar2014-03-101-1/+1
| | | | llvm-svn: 203498
* [lit] Add a README.txt.Daniel Dunbar2014-03-103-0/+11
| | | | | | - Also, update MANIFEST.in and utils/check-sdist. llvm-svn: 203497
* [lit] Add --version option.Daniel Dunbar2014-03-101-0/+7
| | | | llvm-svn: 203496
* add intrinsics_gen dependence on LLVMPollyLibSebastian Pop2014-03-101-1/+1
| | | | | | | | | 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
* Add tests for LWG issue #2356. Stability of erasure in unordered associative ↵Marshall Clow2014-03-105-1/+144
| | | | | | containers. Libc++ already does this, but now we have tests for it. llvm-svn: 203494
* IRGen: __c11/__atomic compare-and-exchange should respect the standardDavid Majnemer2014-03-102-13/+48
| | | | | | | | | | | | | | | 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
* fix polly buildbotSebastian Pop2014-03-101-1/+1
| | | | llvm-svn: 203492
* [docs] Add list of missing GNU ld command line options.Michael J. Spencer2014-03-102-0/+108
| | | | llvm-svn: 203491
* IR: Slightly more verbose error in VerifierJustin Bogner2014-03-101-2/+4
| | | | | | | | | | 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
* MemCpyOpt: When merging memsets also merge the trivial case of two memsets ↵Benjamin Kramer2014-03-102-0/+19
| | | | | | | | with the same destination. The testcase is from PR19092, but I think the bug described there is actually a clang issue. llvm-svn: 203489
* For functions with ARM target specific calling convention, when simplify-libcallEvan Cheng2014-03-104-48/+268
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix #if 0'd code after range-based for loop changeEd Maste2014-03-101-2/+2
| | | | llvm-svn: 203487
* fix PR13550: add a cmake WITH_POLLY optionSebastian Pop2014-03-102-1/+12
| | | | llvm-svn: 203486
* Followup to r203483 - add test.Eli Bendersky2014-03-101-0/+8
| | | | | | [forgot to 'svn add' before committing r203483] llvm-svn: 203485
* [mips] Implement NaCl sandboxing of loads, stores and SP changes:Sasa Stankovic2014-03-105-5/+385
| | | | | | | | | | * 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
* Make sure NVPTX doesn't emit symbol names that aren't valid in PTX.Eli Bendersky2014-03-102-16/+48
| | | | | | | | | | 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
* llvm-c: expose unnamedaddr field of globalsTim Northover2014-03-102-0/+10
| | | | | | Patch by Manuel Jacob. llvm-svn: 203482
* Docs: remove paragraph about manual account creation.Tim Northover2014-03-101-7/+0
| | | | | | | | There's now a normal UI for that, apparently. Patch by Manuel Jacob. llvm-svn: 203481
* More tests for LWG Issue #2263; this time to the associative and unordered ↵Marshall Clow2014-03-108-24/+48
| | | | | | containers. Still no changes to libc++ llvm-svn: 203480
* Added tests to the sequence containers for for LWG Issue #2263. Comparing ↵Marshall Clow2014-03-106-18/+78
| | | | | | iterators and allocator pointers with different const-character. No changes to libc++ llvm-svn: 203479
OpenPOWER on IntegriCloud