summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Spell empty StringRef correctly (0 is a null StringRef, which is not the same).Daniel Dunbar2009-11-122-2/+2
| | | | llvm-svn: 87011
* Recognize (and check) pointer-to-member template arguments that areDouglas Gregor2009-11-123-28/+49
| | | | | | | | | non-type template parameters or constants of pointer-to-member type. Once checked, be sure to retain those pointer-to-member constants as expressions if they are dependent, or as declarations if they are not dependent. llvm-svn: 87010
* Mark DBG_LABEL, EH_LABEL, and GC_LABEL as not-duplicable, sinceDan Gohman2009-11-121-0/+3
| | | | | | they really are not duplicable. llvm-svn: 87009
* "Attach debug info with llvm instructions" mode was enabled a month ago. ↵Devang Patel2009-11-123-47/+14
| | | | | | Now make it permanent and remove old way of inserting intrinsics to encode debug info for locations and types. llvm-svn: 87007
* Silence a warning on targets with unsigned chars.Benjamin Kramer2009-11-121-1/+1
| | | | llvm-svn: 87002
* Use getNameAsCString() instead of getName().data()Devang Patel2009-11-121-13/+13
| | | | llvm-svn: 87001
* When instantiating a reference to a non-type template parameter of pointer toDouglas Gregor2009-11-122-3/+41
| | | | | | | | | member type (e.g., T Class::*Member), build a pointer-to-member constant expression. Previously, we we just building a simple declaration reference expression, which meant that the expression was not treated as a pointer to member. llvm-svn: 87000
* Update TB[BH] layout optimization. Add support for moving the target blockJim Grosbach2009-11-121-33/+115
| | | | | | | to directly follow the jump table. Move the layout changes to prior to any constant island handling. llvm-svn: 86999
* Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library.Chandler Carruth2009-11-1214-93/+93
| | | | | | This resolves the layering violation where CodeGen depended on Frontend. llvm-svn: 86998
* Clean up testcase a bit. Simplify case blocks and adjust switch instruction ↵Jim Grosbach2009-11-121-7/+3
| | | | | | to not take an undefined value as input. llvm-svn: 86997
* Set CK_BaseToDerived in TryStaticDowncast.Anders Carlsson2009-11-121-10/+17
| | | | llvm-svn: 86996
* Give CanQual<T> an implicit conversion to bool, so that it can be usedDouglas Gregor2009-11-122-1/+4
| | | | | | | | | | in "if" statements like: if (CanQual<ReferenceType> RefType = T.getAs<ReferenceType>()) Thanks to Clang for pointing out this mistake :) llvm-svn: 86995
* Add a CK_BaseToDerived cast kind.Anders Carlsson2009-11-122-0/+5
| | | | llvm-svn: 86994
* When comparing template parameter lists, distinguish between three cases:Douglas Gregor2009-11-125-16/+75
| | | | | | | | | | | | | | | | | | | - Comparing template parameter lists to determine if we have a redeclaration - Comparing template parameter lists to determine if we have equivalent template template parameters - Comparing template parameter lists to determine whether a template template argument is valid for a given template template parameter. Previously, we did not distinguish between the last two cases, which got us into trouble when we were looking for exact type matches between the types of non-type template parameters that were dependent types. Now we do, so we properly delay checking of template template arguments until instantiation time. Also, fix an accidental fall-through in a case statement that was causing crashes. llvm-svn: 86992
* Disallow FIX-ITs when generating code.Daniel Dunbar2009-11-122-1/+11
| | | | llvm-svn: 86990
* Improve source-location information for implicitly-generated member call ↵Douglas Gregor2009-11-123-1/+11
| | | | | | expressions llvm-svn: 86989
* clang-cc: Coalesce frontend options further.Daniel Dunbar2009-11-121-89/+78
| | | | llvm-svn: 86988
* fix crash in my previous patchNuno Lopes2009-11-121-1/+1
| | | | llvm-svn: 86987
* implement shl, ashr, and lshr methods. shl is not fully implemented as it is ↵Nuno Lopes2009-11-122-0/+49
| | | | | | quite tricky. llvm-svn: 86986
* Fix typo in run line.Benjamin Kramer2009-11-121-1/+1
| | | | llvm-svn: 86984
* Fix MSVC build.Benjamin Kramer2009-11-121-1/+1
| | | | llvm-svn: 86983
* typoGabor Greif2009-11-121-1/+1
| | | | llvm-svn: 86980
* update CMakefileZhongxing Xu2009-11-121-0/+1
| | | | llvm-svn: 86979
* Add boilerplate logic for a malloc/free checker.Zhongxing Xu2009-11-121-0/+126
| | | | llvm-svn: 86978
* Generalize stdint.h for non-8-bit-multiple types, patch by Chris Lattner2009-11-124-150/+580
| | | | | | | | | | Ken Dyck! "This adds definitions for types of 8-bit multiples from 8 to 64 to stdint.h and rationalizes the selection of types for the exact-width definitions in InitPreprocessor.cpp." llvm-svn: 86977
* do not store wchar/char16/char32/intmax width/alignment infoChris Lattner2009-11-126-33/+14
| | | | | | | into TargetInfo, just derive this based on the underlying type. This prevents them from getting out of synch, patch by Ken Dyck! llvm-svn: 86976
* implement a nice little efficiency hack in the inliner. Since we're nowChris Lattner2009-11-122-14/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | running IPSCCP early, and we run functionattrs interlaced with the inliner, we often (particularly for small or noop functions) completely propagate all of the information about a call to its call site in IPSSCP (making a call dead) and functionattrs is smart enough to realize that the function is readonly (because it is interlaced with inliner). To improve compile time and make the inliner threshold more accurate, realize that we don't have to inline dead readonly function calls. Instead, just delete the call. This happens all the time for C++ codes, here are some counters from opt/llvm-ld counting the number of times calls were deleted vs inlined on various apps: Tramp3d opt: 5033 inline - Number of call sites deleted, not inlined 24596 inline - Number of functions inlined llvm-ld: 667 inline - Number of functions deleted because all callers found 699 inline - Number of functions inlined 483.xalancbmk opt: 8096 inline - Number of call sites deleted, not inlined 62528 inline - Number of functions inlined llvm-ld: 217 inline - Number of allocas merged together 2158 inline - Number of functions inlined 471.omnetpp: 331 inline - Number of call sites deleted, not inlined 8981 inline - Number of functions inlined llvm-ld: 171 inline - Number of functions deleted because all callers found 629 inline - Number of functions inlined Deleting a call is much faster than inlining it, and is insensitive to the size of the callee. :) llvm-svn: 86975
* RegScavenger::enterBasicBlock should always reset register state.Evan Cheng2009-11-122-5/+87
| | | | llvm-svn: 86972
* - Teach LSR to avoid changing cmp iv stride if it will create an immediate thatEvan Cheng2009-11-124-209/+411
| | | | | | | | | | | | | | cannot be folded into target cmp instruction. - Avoid a phase ordering issue where early cmp optimization would prevent the later count-to-zero optimization. - Add missing checks which could cause LSR to reuse stride that does not have users. - Fix a bug in count-to-zero optimization code which failed to find the pre-inc iv's phi node. - Remove, tighten, loosen some incorrect checks disable valid transformations. - Quite a bit of code clean up. llvm-svn: 86969
* Move warning options into DiagnosticOptions.Daniel Dunbar2009-11-125-43/+51
| | | | llvm-svn: 86968
* Avoid comparing string literals.Daniel Dunbar2009-11-121-3/+3
| | | | llvm-svn: 86967
* Move dump-build-information option into DiagnosticOptions.Daniel Dunbar2009-11-123-21/+24
| | | | llvm-svn: 86966
* Use table to separate opcode from operands.Evan Cheng2009-11-121-2/+2
| | | | llvm-svn: 86965
* isLegalICmpImmediate should take a signed integer; code clean up.Evan Cheng2009-11-123-33/+31
| | | | llvm-svn: 86964
* clang-cc: Factor CreateDiagnosticEngine out of main.Daniel Dunbar2009-11-121-36/+50
| | | | llvm-svn: 86963
* clang-cc: -fixit is actually option, not an action, although its use with nonDaniel Dunbar2009-11-121-5/+5
| | | | | | -fsyntax-only is probably untested. llvm-svn: 86962
* Simplify.Daniel Dunbar2009-11-121-9/+0
| | | | llvm-svn: 86961
* CMake: Hopefully unbreak the build by mimicking the changes on theOscar Fuentes2009-11-122-0/+6
| | | | | | other build system about the new C_INCLUDE_DIRS configure option. llvm-svn: 86960
* PthreadLockChecker doesn't need PreVisitCallExpr() yet. All the current ↵Ted Kremenek2009-11-121-20/+6
| | | | | | logic should be done in PostVisitCallExpr() llvm-svn: 86959
* Add most of the boilerplate logic for a simple pthread_mutux_lock() -> ↵Ted Kremenek2009-11-123-1/+181
| | | | | | pthread_mutex_unlock() checker. We need to add a visitor method to Checker for handling dead symbols in order to detect locks that are not unlocked. llvm-svn: 86958
* Remove obsolete 'struct NullDerefTag'.Ted Kremenek2009-11-122-12/+0
| | | | llvm-svn: 86957
* Use the --with-c-include-dirs configure option.Rafael Espindola2009-11-121-0/+9
| | | | llvm-svn: 86956
* Add the --with-c-include-dirs to llvm's configure.Rafael Espindola2009-11-124-24/+52
| | | | | | The clang patch is next. llvm-svn: 86955
* CMake: Pass -lm to check_symbol_exists for detecting several mathOscar Fuentes2009-11-122-1/+7
| | | | | | | | functions like floorf, ceilf, ... Add test for detecting nearbyintf. This change was prompted by test/Transforms/SimplifyLibCalls/floor.ll llvm-svn: 86954
* use getPredicateOnEdge to fold comparisons through PHI nodes,Chris Lattner2009-11-122-1/+43
| | | | | | | which implements GCC PR18046. This also gets us 360 more jump threads on 176.gcc. llvm-svn: 86953
* various fixes to the lattice transfer functions.Chris Lattner2009-11-122-6/+33
| | | | llvm-svn: 86952
* switch jump threading to use getPredicateOnEdge in one placeChris Lattner2009-11-121-10/+13
| | | | | | | | making the new LVI stuff smart enough to subsume some special cases in the old code. Disable them when LVI is around, the testcase still passes. llvm-svn: 86951
* Add a new getPredicateOnEdge method which returns more rich information forChris Lattner2009-11-122-23/+93
| | | | | | | constant constraints. Improve the LVI lattice to include inequality constraints. llvm-svn: 86950
* Enhance Checker class (and GRExprEngine) to support PostVisitation for ↵Ted Kremenek2009-11-124-17/+48
| | | | | | CallExprs. No clients (yet). llvm-svn: 86949
* Remove GRExprEngine::EvalCall(). It had a single callsite in GRExprEngine, ↵Ted Kremenek2009-11-122-15/+10
| | | | | | and was easily inlined. llvm-svn: 86948
OpenPOWER on IntegriCloud