summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Implement N3421; comparison predicates<void>Marshall Clow2013-07-2921-15/+575
| | | | llvm-svn: 187357
* Use proper section suffix for COFF weak symbolsNico Rieck2013-07-295-43/+66
| | | | | | | | | 32-bit symbols have "_" as global prefix, but when forming the name of COMDAT sections this prefix is ignored. The current behavior assumes that this prefix is always present which is not the case for 64-bit and names are truncated. llvm-svn: 187356
* Proper va_arg/va_copy lowering on win64Nico Rieck2013-07-292-1/+63
| | | | | | | Win64 uses CharPtrBuiltinVaList instead of X86_64ABIBuiltinVaList like other 64-bit targets. llvm-svn: 187355
* Re-application of 187310. Re-enabling warning C4275 for MSVC 11 and up, but ↵Aaron Ballman2013-07-291-3/+8
| | | | | | not MSVC 10 since it is still required there. llvm-svn: 187354
* Add support for the 's' operation to llvm-ar.Rafael Espindola2013-07-295-3/+69
| | | | | | | | | | | | If no other operation is specified, 's' becomes an operation instead of an modifier. The s operation just creates a symbol table. It is the same as running ranlib. We assume the archive was created by a sane ar (like llvm-ar or gnu ar) and if the symbol table is present, then it is current. We use that to optimize the most common case: a broken build system that thinks it has to run ranlib. llvm-svn: 187353
* MC: Support larger COFF string tablesNico Rieck2013-07-292-12/+77
| | | | | | | Single-slash encoded entries do not require a terminating null. This bumps the maximum table size from ~1MB to ~9.5MB. llvm-svn: 187352
* ExceptionDemo.cpp: Tweak a @param. [-Wdocumentation]NAKAMURA Takumi2013-07-291-1/+1
| | | | llvm-svn: 187351
* Some Intel Penryn CPUs come with SSE4 disabled. Detect them as core 2.Benjamin Kramer2013-07-291-1/+3
| | | | | | PR16721. llvm-svn: 187350
* Allow generation of vmla.f32 instructions when targeting Cortex-A15. The ↵Silviu Baranga2013-07-295-5/+31
| | | | | | patch also adds the VFP4 feature to Cortex-A15 and fixes the DontUseFusedMAC predicate so that we can still generate vmla.f32 instructions on non-darwin targets with VFP4. llvm-svn: 187349
* test commitRobert Lytton2013-07-291-0/+1
| | | | llvm-svn: 187348
* Teach the AllocaPromoter which is wrapped around the SSAUpdaterChandler Carruth2013-07-291-15/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | infrastructure to do promotion without a domtree the same smarts about looking through GEPs, bitcasts, etc., that I just taught mem2reg about. This way, if SROA chooses to promote an alloca which still has some noisy instructions this code can cope with them. I've not used as principled of an approach here for two reasons: 1) This code doesn't really need it as we were already set up to zip through the instructions used by the alloca. 2) I view the code here as more of a hack, and hopefully a temporary one. The SSAUpdater path in SROA is a real sore point for me. It doesn't make a lot of architectural sense for many reasons: - We're likely to end up needing the domtree anyways in a subsequent pass, so why not compute it earlier and use it. - In the future we'll likely end up needing the domtree for parts of the inliner itself. - If we need to we could teach the inliner to preserve the domtree. Part of the re-work of the pass manager will allow this to be very powerful even in large SCCs with many functions. - Ultimately, computing a domtree has gotten significantly faster since the original SSAUpdater-using code went into ScalarRepl. We no longer use domfrontiers, and much of domtree is lazily done based on queries rather than eagerly. - At this point keeping the SSAUpdater-based promotion saves a total of 0.7% on a build of the 'opt' tool for me. That's not a lot of performance given the complexity! So I'm leaving this a bit ugly in the hope that eventually we just remove all of this nonsense. I can't even readily test this because this code isn't reachable except through SROA. When I re-instate the patch that fast-tracks allocas already suitable for promotion, I'll add a testcase there that failed before this change. Before that, SROA will fix any test case I give it. llvm-svn: 187347
* Fix build error caused by r187345.Daniel Jasper2013-07-291-2/+2
| | | | llvm-svn: 187346
* Initial architecture for clang-tidy.Daniel Jasper2013-07-2932-3/+1195
| | | | | | | | | | | This is the first version of a possible clang-tidy architecture. The purpose of clang-tidy is to detect errors in adhering to common coding patterns, e.g. described in the LLVM Coding Standards. This is still heavily in flux. Review: http://llvm-reviews.chandlerc.com/D884 llvm-svn: 187345
* Return ExprError if both arguments to the mask form of ↵Craig Topper2013-07-291-13/+13
| | | | | | | | __builtin_shufflvector don't have the same number of elements or the mask isn't an integer vector. Previously a diagnostic was issued, but the code went ahead and built the ShuffleVectorExpr. While I'm here also simplify a couple lines by wrapping the return ExprError around the Diag calls. llvm-svn: 187344
* Remove '-debug-only' from test caseTobias Grosser2013-07-291-1/+1
| | | | | | | This flags was not used in the test case, but caused failures when LLVM was built without debugging. We can savely remove it. llvm-svn: 187343
* TempScop: Actually load Polly in this test caseTobias Grosser2013-07-291-1/+1
| | | | llvm-svn: 187342
* Remove second '-analyze' from command lineTobias Grosser2013-07-291-1/+1
| | | | llvm-svn: 187341
* Don't vectorize when the attribute NoImplicitFloat is used.Nadav Rotem2013-07-292-0/+30
| | | | llvm-svn: 187340
* JSONImporter: Free new schedule if found invalidTobias Grosser2013-07-292-1/+5
| | | | | | | | | In case we detect that the schedule the user wants to import is invalid we refuse it _and_ free the isl_maps containing it. Another bug found thanks to Rafael. llvm-svn: 187339
* CodeGeneration: Fix double free in vector forTobias Grosser2013-07-292-7/+10
| | | | | | | | | | We now use __isl_take to annotate the uses of the isl_set where we got the memory management wrong. Thanks to Rafael! His pipefail work hardened our test environment and exposed this bug nicely. llvm-svn: 187338
* clang/test/Driver/cl.c: Don't attempt slash switches on msys bash.NAKAMURA Takumi2013-07-291-0/+3
| | | | llvm-svn: 187337
* Fix -Wdocumentation warnings.Rafael Espindola2013-07-282-6/+6
| | | | llvm-svn: 187336
* Update comments for SSAUpdater to use the modern doxygen commentChandler Carruth2013-07-282-88/+60
| | | | | | | | | | | | standards for LLVM. Remove duplicated comments on the interface from the implementation file (implementation comments are left there of course). Also clean up, re-word, and fix a few typos and errors in the commenst spotted along the way. This is in preparation for changes to these files and to keep the uninteresting tidying in a separate commit. llvm-svn: 187335
* Fix up formatting. No functional change.Craig Topper2013-07-281-6/+6
| | | | llvm-svn: 187334
* Remove use of sprintf added to X86 disassembler tablegen code. Send message ↵Craig Topper2013-07-281-4/+2
| | | | | | with instruction name to errs() instead and use a generic message for the llvm_unreachable. Consistent with other places in this file. llvm-svn: 187333
* Glen: Minor tweaks to locale.cpp to help it compile with exceptions turned off.Howard Hinnant2013-07-281-2/+3
| | | | llvm-svn: 187332
* Partial revert of 187310; it seems MSVC 10 still spits out this warning, but ↵Aaron Ballman2013-07-281-1/+2
| | | | | | MSVC 11 does not. llvm-svn: 187331
* Try single quotes to fix the msys bot:Rafael Espindola2013-07-281-8/+7
| | | | | | | | It was still failing with double quotes: http://bb.pgr.jp/builders/clang-i686-msys/builds/698/steps/test_clang/logs/Clang%20%3A%3A%20Driver__cl.c llvm-svn: 187330
* Avoid crashing if a directory has no pch files.Rafael Espindola2013-07-282-1/+3
| | | | | | Should fix some of the bots that have assertions disabled. llvm-svn: 187329
* Use a slightly smaller hammer to make this pass.Rafael Espindola2013-07-281-5/+2
| | | | | | When first updating this test I only noticided the first RUN line. llvm-svn: 187328
* Temporarily revert r187323 until I update SSAUpdater to match mem2reg.Chandler Carruth2013-07-281-81/+12
| | | | | | I forgot that we had two totally independent things here. :: sigh :: llvm-svn: 187327
* gitattributes: .png and .txt are no text filesTobias Grosser2013-07-282-5/+7
| | | | llvm-svn: 187326
* fixed compilation issueElena Demikhovsky2013-07-281-0/+1
| | | | llvm-svn: 187325
* Added encoding prefixes for KNL instructions (EVEX).Elena Demikhovsky2013-07-2817-33/+703
| | | | | | | Added 512-bit operands printing. Added instruction formats for KNL instructions. llvm-svn: 187324
* Now that mem2reg understands how to cope with a slightly wider set ofChandler Carruth2013-07-281-12/+81
| | | | | | | | | | | | uses of an alloca, we can pre-compute promotability while analyzing an alloca for splitting in SROA. That lets us short-circuit the common case of a bunch of trivially promotable allocas. This cuts 20% to 30% off the run time of SROA for typical frontend-generated IR sequneces I'm seeing. It gets the new SROA to within 20% of ScalarRepl for such code. My current benchmark for these numbers is PR15412, but it fits the general pattern of IR emitted by Clang so it should be widely applicable. llvm-svn: 187323
* Thread DataLayout through the callers and into mem2reg. This will beChandler Carruth2013-07-285-14/+23
| | | | | | | useful in a subsequent patch, but causes an unfortunate amount of noise, so I pulled it out into a separate patch. llvm-svn: 187322
* [PECOFF] Simplicy FileCOFF ctor. No functionality change.Rui Ueyama2013-07-281-73/+87
| | | | | | | | | Member functions to read the symbol table had too many parameters to propagate all the temporary information from one to another. By storing the information to data members, we can simplify the function signatures and improve the readability. llvm-svn: 187321
* [PowerPC] Add comment explaining preprocessor directive.Bill Schmidt2013-07-281-0/+2
| | | | llvm-svn: 187320
* Revert 187318Bill Schmidt2013-07-281-1/+1
| | | | llvm-svn: 187319
* [PowerPC] Remove unnecessary preprocessor checking.Bill Schmidt2013-07-281-1/+1
| | | | | | | | | The tests !defined(__ppc__) && !defined(__powerpc__) are not needed or helpful when verifying that code is being compiled for a 64-bit target. The simpler test provided by this revision is sufficient to tell if the target is 64-bit. llvm-svn: 187318
* Removed unnecessary parameter.Rui Ueyama2013-07-281-2/+1
| | | | llvm-svn: 187317
* Update the commentNadav Rotem2013-07-271-0/+1
| | | | llvm-svn: 187316
* Reduce stack frame size by avoiding a large token vector on an error path.Bob Wilson2013-07-271-1/+1
| | | | | | | | | | | | | | | | | Beginning with svn r186971, we noticed an internal test started to fail when using clang built with LTO. After much investigation, it turns out that there are no blatant bugs here, we are just running out of stack space and crashing. Preprocessor::ReadFunctionLikeMacroArgs already has one vector of 64 Tokens, and r186971 added another. When built with LTO, that function is inlined into Preprocessor::HandleMacroExpandedIdentifier, which for our internal test is invoked in a deep recursive cycle. I'm leaving the original 64 Token vector alone on the assumption that it is important for performance, but the new FixedArgTokens vector is only used on an error path, so it should be OK if it requires additional heap storage. It would be even better if we could avoid the deep recursion, but I think this change is a good thing to do regardless. <rdar://problem/14540345> llvm-svn: 187315
* [APFloat] Make all arithmetic operations with NaN produce positive NaNs.Michael Gottesman2013-07-272-93/+46
| | | | | | | | | | | | | IEEE-754R 1.4 Exclusions states that IEEE-754R does not specify the interpretation of the sign of NaNs. In order to remove an irrelevant variable that most floating point implementations do not use, standardize add, sub, mul, div, mod so that operating anything with NaN always yields a positive NaN. In a later commit I am going to update the APIs for creating NaNs so that one can not even create a negative NaN. llvm-svn: 187314
* [APFloat] Move setting fcNormal in zeroSignificand() to calling code.Michael Gottesman2013-07-271-2/+4
| | | | | | | | Zeroing the significand of a floating point number does not necessarily cause a floating point number to become finite non zero. For instance, if one has a NaN, zeroing the significand will cause it to become +/- infinity. llvm-svn: 187313
* [APFloat] Removed nextafter from missing operations since it is implemented ↵Michael Gottesman2013-07-271-1/+1
| | | | | | in APFloat::next. llvm-svn: 187312
* Re-enabling some more MSVC warnings; all of these compile cleanly with no ↵Aaron Ballman2013-07-271-2/+0
| | | | | | further changes required. llvm-svn: 187310
* Minor code simplification suggested by DuncanMatt Arsenault2013-07-271-2/+1
| | | | llvm-svn: 187309
* modularize: Remove default case from fully covered switch.Benjamin Kramer2013-07-271-4/+1
| | | | llvm-svn: 187306
* Temporary disable a test until I finished the fixTobias Grosser2013-07-271-0/+3
| | | | llvm-svn: 187305
OpenPOWER on IntegriCloud