summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [PECOFF][Writer] Do not emit the empty section as Windows loader rejects ↵Rui Ueyama2013-07-013-51/+11
| | | | | | such executable. llvm-svn: 185308
* [PECOFF][Writer] Amend the comment about DLL linking.Rui Ueyama2013-07-011-26/+25
| | | | llvm-svn: 185307
* Put helper class in anonymous namespace.Craig Topper2013-07-011-2/+2
| | | | llvm-svn: 185306
* Put helper class in anonymous namespace.Craig Topper2013-07-011-0/+4
| | | | llvm-svn: 185305
* PR16502: Fix a dumb bug where we might look past the last initializer in anRichard Smith2013-07-012-0/+8
| | | | | | InitListExpr. llvm-svn: 185304
* Put helper classes in an anonymous namespace.Craig Topper2013-07-011-0/+8
| | | | llvm-svn: 185303
* Use LLVM_DELETED_FUNCTION on unimplemented copy constructor and assignment ↵Craig Topper2013-07-011-2/+2
| | | | | | operator. llvm-svn: 185302
* Put helper classes in an anonymous namespace.Craig Topper2013-07-011-0/+4
| | | | llvm-svn: 185301
* Use static for helper functions instead of an anonymous namespace per coding ↵Craig Topper2013-07-011-11/+8
| | | | | | standards. llvm-svn: 185300
* LoopVectorize: Math functions only read rounding modeArnold Schwaighofer2013-07-012-0/+39
| | | | | | | | Math functions are mark as readonly because they read the floating point rounding mode. Because we don't vectorize loops that would contain function calls that set the rounding mode it is safe to ignore this memory read. llvm-svn: 185299
* In istream::ignore, check the delimeter as an int_type, not as a char_type, ↵Howard Hinnant2013-07-012-4/+36
| | | | | | so as to correctly handle EOF. This fixes http://llvm.org/bugs/show_bug.cgi?id=16427 llvm-svn: 185298
* The bind and function functor constructors and assignment operators were ↵Howard Hinnant2013-07-012-7/+59
| | | | | | overly general and getting confused with the copy constructor and copy assignment operators. Constrained them. This fixes http://llvm.org/bugs/show_bug.cgi?id=16385 llvm-svn: 185297
* Make string pointer const.Craig Topper2013-06-301-1/+1
| | | | llvm-svn: 185296
* Put helper classes into anonymous namespace.Craig Topper2013-06-301-0/+4
| | | | llvm-svn: 185295
* R600: Fix an unitialized variable in R600InstrInfo.cppVincent Lejeune2013-06-301-1/+1
| | | | llvm-svn: 185294
* Documentation cleanup for TypeOrdering.h.James Dennett2013-06-301-7/+9
| | | | llvm-svn: 185293
* X86: POP*rmm: move address operand to (ins) from (outs).Ahmed Bougacha2013-06-301-3/+3
| | | | llvm-svn: 185292
* Restore r184205 and associated commits (after commit of r185290)Stephen Lin2013-06-3018-272/+259
| | | | | | This allows clang to use the backend parameter attribute 'returned' when generating 'this'-returning constructors and destructors in ARM and MSVC C++ ABIs. llvm-svn: 185291
* DeadArgumentElimination: keep return value on functions that have a live ↵Stephen Lin2013-06-302-28/+115
| | | | | | argument with the 'returned' attribute (rather than generate invalid IR); however, if both can be eliminated, both will be llvm-svn: 185290
* Fix bind by making _is_valid_bind_return more robust. It should return ↵Howard Hinnant2013-06-302-1/+64
| | | | | | false instead of give a compile time error, always. The problem was down in ____mu_return, the version that handles nested bind objects. This fixes http://llvm.org/bugs/show_bug.cgi?id=16343 llvm-svn: 185289
* Documentation cleanup: Mostly formatting \brief documentation, also fix aJames Dennett2013-06-303-56/+54
| | | | | | typo or two. llvm-svn: 185288
* Always set -m32/-m64 flags for targeting i386/x86_64 respectively. ↵Alexey Samsonov2013-06-301-13/+6
| | | | | | Apparently, there are platforms where the clang defaults are different from gcc llvm-svn: 185287
* Define the path to llvm-symbolizer tool in a common config to reduce copy-pasteAlexey Samsonov2013-06-305-17/+7
| | | | llvm-svn: 185286
* [PECOFF][Writer] Fix buildbot failure on x86_64-win7.Rui Ueyama2013-06-301-2/+9
| | | | llvm-svn: 185285
* ConstantFold: Check that truncating the other side is safe under a sext when ↵Benjamin Kramer2013-06-302-5/+19
| | | | | | | | trying to remove a sext from a compare. Fixes PR16462. llvm-svn: 185284
* [PECOFF][Reader] Create a jump table for functions exported by DLL.Rui Ueyama2013-06-304-40/+145
| | | | llvm-svn: 185283
* Teach -Wunsequenced that the side-effects of a function evaluation are sequencedRichard Smith2013-06-303-5/+35
| | | | | | | | | before the value computation of the result. In C, this is implied by there being a sequence point after their evaluation, and in C++, it's implied by the side-effects being sequenced before the expressions and statements in the function body. llvm-svn: 185282
* Reinstate r185229, reverted in r185256, with a tweak: further ignore theRichard Smith2013-06-309-111/+350
| | | | | | | | | | | | | | | | | | | | | | | standard's rule that an extern "C" declaration conflicts with any entity in the global scope with the same name. Now we only care if the global scope entity is a variable declaration (and so might have the same mangled name as the extern "C" declaration). This has been reported as a standard defect. Original commit message: PR7927, PR16247: Reimplement handling of matching extern "C" declarations across scopes. When we declare an extern "C" name that is not a redeclaration of an entity in the same scope, check whether it redeclares some extern "C" entity from another scope, and if not, check whether it conflicts with a (non-extern-"C") entity in the translation unit. When we declare a name in the translation unit that is not a redeclaration, check whether it conflicts with any extern "C" entities (possibly from other scopes). llvm-svn: 185281
* Lex: Cleanup whitespace in PragmaRegionHandlerDavid Majnemer2013-06-301-22/+22
| | | | llvm-svn: 185280
* Bug fix: Make RecursiveASTVisitor<T>::TraverseLambdaExpr callJames Dennett2013-06-303-2/+23
| | | | | | | WalkUpFromLambdaExpr, so that the Visit* functions are called on that AST node. llvm-svn: 185277
* Add enumerators to TestVisitor::Language to allow visitor tests toJames Dennett2013-06-301-2/+3
| | | | | | | | | | | | | | explicitly specify use of C++98 or C++11. Lang_CXX is preserved as an alias for Lang_CXX98. This does not add Lang_CXX1Y or Lang_C11, on the assumption that it's better to add them if/when they are needed. (This is a prerequisite for a test in a later patch for RecursiveASTVisitor.) Reviewed by Richard Smith. llvm-svn: 185276
* Matthew Dempsky: POSIX defines that the _POSIX_C_SOURCE macros are to be set ↵Howard Hinnant2013-06-301-3/+3
| | | | | | | | | | | | | | | | | | | | by user code to specify what version of POSIX the system should provide. If you want to check what version of POSIX is actually available, you're supposed to test _POSIX_VERSION. However, since sysconf() has been in POSIX since 1995, it's probably safe to assume it's available on any system with a C++11 compiler, especially if _SC_NPROCESSORS_ONLN is defined too. So no point in a complicated preprocessor rule if just we unconditionally include <unistd.h> (on non-Windows systems). Also, I've added a #warning for to help porters detect when a suitable implementation isn't detected at compile-time. Howard: Matthew, can you patch CREDITS.TXT? Thanks. llvm-svn: 185275
* Matthew Dempsky: Same as stdexcept.cpp in libc++abi: we've already computed ↵Howard Hinnant2013-06-291-1/+1
| | | | | | 'len strlen(msg)', so we can use memcpy() instead of strcpy(). llvm-svn: 185274
* Prevent '\b' from backing up into invalid memory. Fixes ↵Howard Hinnant2013-06-291-1/+25
| | | | | | http://llvm.org/bugs/show_bug.cgi?id=16240. Sorry, I can not think of a good test case for this one, except by running valgrind as reported in the bug. llvm-svn: 185273
* ValueTracking: Teach isKnownToBeAPowerOfTwo about (ADD X, (XOR X, Y)) where ↵David Majnemer2013-06-292-10/+33
| | | | | | | | | X is a power of two This allows us to simplify urem instructions involving the add+xor to turn into simpler math. llvm-svn: 185272
* NVPTX: Fold otherwise unused variable into assert.Benjamin Kramer2013-06-291-2/+2
| | | | | | Avoids unused variable warnings in release builds. llvm-svn: 185271
* InstCombine: Also turn selects fed by an and into arithmetic when the types ↵Benjamin Kramer2013-06-292-4/+45
| | | | | | | | | don't match. Inserting a zext or trunc is sufficient. This pattern is somewhat common in LLVM's pointer mangling code. llvm-svn: 185270
* R600: Unbreak GCC build.Benjamin Kramer2013-06-291-1/+2
| | | | | | | operator++ on an enum is not legal. clang happens to accept it anyways, I think that's a known bug. llvm-svn: 185269
* R600: Support schedule and packetization of trans-only instVincent Lejeune2013-06-2913-106/+262
| | | | llvm-svn: 185268
* R600: Bank Swizzle now display SCL equivalentVincent Lejeune2013-06-293-12/+12
| | | | llvm-svn: 185267
* misched: Compress pairs returned by getUnderlyingObjectsForInstr.Benjamin Kramer2013-06-291-12/+15
| | | | llvm-svn: 185266
* Add operators to make launch a bitmask type. Searched all of the standard, ↵Howard Hinnant2013-06-292-0/+82
| | | | | | and libc++ to see if this error occurred elsewhere and didn't see any other place. This fixes http://llvm.org/bugs/show_bug.cgi?id=16207 llvm-svn: 185265
* Compress pairs. No functionality change.Benjamin Kramer2013-06-292-13/+13
| | | | llvm-svn: 185264
* LoopVectorizer: Pack MemAccessInfo pairs.Benjamin Kramer2013-06-291-25/+22
| | | | llvm-svn: 185263
* Move helper classes into anonymous namespaces.Benjamin Kramer2013-06-291-0/+6
| | | | llvm-svn: 185262
* Driver: Push triple objects around instead of going to std::string all the time.Benjamin Kramer2013-06-293-309/+277
| | | | | | No functionality change. llvm-svn: 185261
* BlockGenerator: Simplify the old value searching code.Hongbin Zheng2013-06-291-9/+5
| | | | | | | | | | | Orignally, we first test if a ValueMap contains a Value, and than use the index operator to get the corresponding new value. This requires the ValueMap to lookup the key (i.e. the old value) twice. Now, we directly use the "lookup" function provided by DenseMap to implement the same functionality. llvm-svn: 185260
* InstCombine: FoldGEPICmp shouldn't change sign of base pointer comparisonDavid Majnemer2013-06-292-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | Changing the sign when comparing the base pointer would introduce all sorts of unexpected things like: %gep.i = getelementptr inbounds [1 x i8]* %a, i32 0, i32 0 %gep2.i = getelementptr inbounds [1 x i8]* %b, i32 0, i32 0 %cmp.i = icmp ult i8* %gep.i, %gep2.i %cmp.i1 = icmp ult [1 x i8]* %a, %b %cmp = icmp ne i1 %cmp.i, %cmp.i1 ret i1 %cmp into: %cmp.i = icmp slt [1 x i8]* %a, %b %cmp.i1 = icmp ult [1 x i8]* %a, %b %cmp = xor i1 %cmp.i, %cmp.i1 ret i1 %cmp By preserving the original sign, we now get: ret i1 false This fixes PR16483. llvm-svn: 185259
* InstCombine: Small whitespace cleanup in FoldGEPICmpDavid Majnemer2013-06-291-1/+1
| | | | llvm-svn: 185258
* InstCombine: Be more agressive optimizing 'udiv' instrs with 'select' denomsDavid Majnemer2013-06-292-44/+115
| | | | | | | | | | | | | | | | | Real world code sometimes has the denominator of a 'udiv' be a 'select'. LLVM can handle such cases but only when the 'select' operands are symmetric in structure (both select operands are a constant power of two or a left shift, etc.). This falls apart if we are dealt a 'udiv' where the code is not symetric or if the select operands lead us to more select instructions. Instead, we should treat the LHS and each select operand as a distinct divide operation and try to optimize them independently. If we can to simplify each operation, then we can replace the 'udiv' with, say, a 'lshr' that has a new select with a bunch of new operands for the select. llvm-svn: 185257
OpenPOWER on IntegriCloud