summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Diagnose misuse of '.*' and '->*' operators during parseFariborz Jahanian2009-10-234-2/+28
| | | | | | instead of crashing in code gen. llvm-svn: 84968
* Fix stylistic and documentation problems in ValueMap found by Nick Lewycky andJeffrey Yasskin2009-10-233-26/+36
| | | | | | Evan Cheng. llvm-svn: 84967
* Fix operator precedence in Doug's most recent commit.Sebastian Redl2009-10-231-3/+3
| | | | llvm-svn: 84964
* Apply the special enum restrictions from [over.match.oper]p3b2 in ↵Sebastian Redl2009-10-236-8/+47
| | | | | | argument-dependent lookup too. This fixes PR5244. llvm-svn: 84963
* Eliminate QualifiedDeclRefExpr, which captured the notion of aDouglas Gregor2009-10-2320-231/+396
| | | | | | | | | | | | | | | | | | | | | | | | qualified reference to a declaration that is not a non-static data member or non-static member function, e.g., namespace N { int i; } int j = N::i; Instead, extend DeclRefExpr to optionally store the qualifier. Most clients won't see or care about the difference (since QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the number of top-level expression types that clients need to cope with, brings the implementation of DeclRefExpr into line with MemberExpr, and simplifies and unifies our handling of declaration references. Extended DeclRefExpr to (optionally) store explicitly-specified template arguments. This occurs when naming a declaration via a template-id (which will be stored in a TemplateIdRefExpr) that, following template argument deduction and (possibly) overload resolution, is replaced with a DeclRefExpr that refers to a template specialization but maintains the template arguments as written. llvm-svn: 84962
* Fixed a code gen bug (by fixing the AST) involving user-definedFariborz Jahanian2009-10-232-0/+57
| | | | | | | pointer-to-member type conversion follwed by a pointer-to-member standard conversion. llvm-svn: 84955
* APInt-ify the gep scaling code, so that it correctly handles the case whereDan Gohman2009-10-232-4/+17
| | | | | | the scale overflows pointer-sized arithmetic. This fixes PR5281. llvm-svn: 84954
* Rebuild dependently-sized ext vectors if either the element type or the sizeJohn McCall2009-10-232-1/+15
| | | | | | changed under the transform. llvm-svn: 84953
* Make LoopDeletion check the maximum backedge taken count, rather than theDan Gohman2009-10-232-1/+28
| | | | | | | exact backedge taken count, when checking for infinite loops. This allows it to delete loops with multiple exit conditions. llvm-svn: 84952
* Silence GCC 4.3 warning.Benjamin Kramer2009-10-231-2/+1
| | | | | | TreeTransform.h:2333: warning: suggest parentheses around && within || llvm-svn: 84949
* Emit calls using the canonical prototype of the called function.John McCall2009-10-231-3/+5
| | | | llvm-svn: 84947
* some stuff is done, we still have constantexpr simplification to do.Chris Lattner2009-10-231-31/+15
| | | | llvm-svn: 84943
* teach libanalysis to simplify vector loads with bitcast sources. ThisChris Lattner2009-10-232-7/+23
| | | | | | | | | | | | | | | | | | | | | | implements something out of Target/README.txt producing: _foo: ## @foo movl 4(%esp), %eax movapd LCPI1_0, %xmm0 movapd %xmm0, (%eax) ret $4 instead of: _foo: ## @foo movl 4(%esp), %eax movapd _b, %xmm0 mulpd LCPI1_0, %xmm0 addpd _a, %xmm0 movapd %xmm0, (%eax) ret $4 llvm-svn: 84942
* enhance FoldReinterpretLoadFromConstPtr to handle loads of up to 32 Chris Lattner2009-10-232-6/+19
| | | | | | bytes (i256). llvm-svn: 84941
* teach libanalysis to fold int and fp loads from almost arbitraryChris Lattner2009-10-232-8/+253
| | | | | | | | | | | | | | | | | | | non-type-safe constant initializers. This sort of thing happens quite a bit for 4-byte loads out of string constants, unions, bitfields, and an interesting endianness check from sqlite, which is something like this: const int sqlite3one = 1; # define SQLITE_BIGENDIAN (*(char *)(&sqlite3one)==0) # define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1) # define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE) all of these macros now constant fold away. This implements PR3152 and is based on a patch started by Eli, but heavily modified and extended. llvm-svn: 84936
* Add 2.6 release note.Tanya Lattner2009-10-231-0/+1
| | | | llvm-svn: 84934
* Update tests for 84931.Evan Cheng2009-10-237-14/+14
| | | | llvm-svn: 84932
* X86 needs critical path anti-dependency breaking.Evan Cheng2009-10-231-1/+1
| | | | llvm-svn: 84931
* Add comment.Ted Kremenek2009-10-231-0/+3
| | | | llvm-svn: 84930
* Commit fixes for half precision I noted in review, soDale Johannesen2009-10-231-3/+3
| | | | | | | they don't get lost; I don't think the originator has write access. llvm-svn: 84928
* Fix integer overflow in PCHReader when reading the length of anTed Kremenek2009-10-231-1/+1
| | | | | | | | | | | | | | | | | identifier. This caused a crash when reading PCH files that contained long identifier names. The issue is that 'StrLenPtr' was previously a 'const char *', meaning the byte loaded from it would be interpretted as a signed integer. If the topmost bit was set, conversion to 'unsigned' would extend that bit, causing an overflow. The solution is to make 'StrLenPtr' an 'unsigned char *', always treating the value as an unsigned integer. This fixes: <rdar://problem/7328900> llvm-svn: 84925
* Fixed undefined behavior in pushMappings when the stack has to resize.John Thompson2009-10-231-0/+2
| | | | llvm-svn: 84924
* Add radar number.Mike Stump2009-10-231-0/+1
| | | | llvm-svn: 84923
* Fixup the return type of functions.Mike Stump2009-10-234-6/+19
| | | | llvm-svn: 84922
* This is passing on Darwin PPC.Bill Wendling2009-10-231-1/+1
| | | | llvm-svn: 84921
* FunctionTypeLocs don't necessarily provide ParmVarDecls, so don't crash ifJohn McCall2009-10-231-1/+1
| | | | | | one was PCH'ed without any. llvm-svn: 84920
* Minor code cleanup.Victor Hernandez2009-10-231-3/+2
| | | | llvm-svn: 84919
* Neuter stack protectors by only checking character arrays. This is what GCCBill Wendling2009-10-231-1/+6
| | | | | | does. llvm-svn: 84916
* Preserve type source information when substituting into FieldDecls.John McCall2009-10-221-9/+11
| | | | | | Just r84734 now that some fundamental work has been completed. llvm-svn: 84914
* Preserve source information for anonymous struct/union declarations.John McCall2009-10-221-4/+8
| | | | llvm-svn: 84913
* Allow the target to select the level of anti-dependence breaking that should ↵David Goodwin2009-10-2211-23/+44
| | | | | | be performed by the post-RA scheduler. The default is none. llvm-svn: 84911
* Complete code gen for '.*' binary expression forFariborz Jahanian2009-10-225-26/+70
| | | | | | both scalar and aggregates. llvm-svn: 84910
* Fixes a warning.Fariborz Jahanian2009-10-221-1/+1
| | | | llvm-svn: 84909
* When building types from declarators, instead of building two types (one forJohn McCall2009-10-2216-429/+441
| | | | | | | | | | | | | | | | | | | | | the DeclaratorInfo, one for semantic analysis), just build a single type whose canonical type will reflect the semantic analysis (assuming the type is well-formed, of course). To make that work, make a few changes to the type system: * allow the nominal pointee type of a reference type to be a (possibly sugared) reference type. Also, preserve the original spelling of the reference type. Both of these can be ignored on canonical reference types. * Remove ObjCProtocolListType and preserve the associated source information on the various ObjC TypeLocs. Preserve the spelling of protocol lists except in the canonical form. * Preserve some level of source type structure on parameter types, but canonicalize on the canonical function type. This is still a WIP. Drops code size, makes strides towards accurate source location representation, slight (~1.7%) progression on Cocoa.h because of complexity drop. llvm-svn: 84907
* Always emit error diagnostics when an error occurs within ↵Ted Kremenek2009-10-221-2/+2
| | | | | | clang_createTranslationUnit() and clang_createTranslationUnitFromSource(). These kind of errors are ones that shouldn't be missed. llvm-svn: 84904
* Use 'waitpid' instead of 'wait'. Basing Program::Wait() on 'wait()' ↵Ted Kremenek2009-10-221-1/+1
| | | | | | | | | | | prevents it being correct within a multithreaded context. This address: PR 5277 (Program::Wait is unsafe to call from multiple threads). Note: If waitpid() turns out to be non-portable, we can add more autoconf magic, or look into another solution. llvm-svn: 84903
* Try r84890 again (adding ValueMap<>), now that I've tested the compile onJeffrey Yasskin2009-10-224-0/+683
| | | | | | gcc-4.4. llvm-svn: 84902
* size_t, not unsigned here to silence a warning.Eric Christopher2009-10-221-26/+26
| | | | llvm-svn: 84900
* Random include cleanup.Benjamin Kramer2009-10-223-2/+1
| | | | llvm-svn: 84898
* Fix OProfileJITEventListener after r84054 renamed CompileUnit to Scope.Jeffrey Yasskin2009-10-221-6/+6
| | | | llvm-svn: 84895
* Tidying up some code and comments. No functionality change.Bill Wendling2009-10-221-24/+6
| | | | llvm-svn: 84894
* Disable Microsoft extensions to fix failure on Windows.John Thompson2009-10-221-1/+1
| | | | llvm-svn: 84893
* Revert r84890, which broke the linux build.Jeffrey Yasskin2009-10-224-683/+0
| | | | llvm-svn: 84892
* Canonicality is a property of qualified types, not unqualified types.John McCall2009-10-227-23/+34
| | | | llvm-svn: 84891
* Add a ValueMap<ValueOrSubclass*, T> type. ValueMap<Value*, T> is safe to useJeffrey Yasskin2009-10-224-0/+683
| | | | | | | | | | | | even when keys get RAUWed and deleted during its lifetime. By default the keys act like WeakVHs, but users can pass a third template parameter to configure how updates work and whether to do anything beyond updating the map on each action. It's also possible to automatically acquire a lock around ValueMap updates triggered by RAUWs and deletes, to support the ExecutionEngine. llvm-svn: 84890
* fix #2 :)Chris Lattner2009-10-221-1/+1
| | | | llvm-svn: 84889
* fix testcase, thanks Daniel.Chris Lattner2009-10-221-1/+1
| | | | llvm-svn: 84888
* Hide MetadataContext implementation details.Devang Patel2009-10-225-53/+192
| | | | llvm-svn: 84886
* Fix getMDs() interface such that it does not expose implementation details.Devang Patel2009-10-225-26/+35
| | | | llvm-svn: 84885
* Using TrackingVH instead of WeakVH or WeakMetadataVH.Devang Patel2009-10-226-44/+22
| | | | llvm-svn: 84884
OpenPOWER on IntegriCloud