summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Update CMake stuffAnton Korobeynikov2011-01-1014-16/+15
| | | | llvm-svn: 123171
* Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs ↵Anton Korobeynikov2011-01-10108-543/+564
| | | | | | and fixes here and there. llvm-svn: 123170
* MC/ARM/AsmParser: Split out SplitMnemonicAndCC().Daniel Dunbar2011-01-101-17/+29
| | | | llvm-svn: 123169
* Remove dead code.Zhongxing Xu2011-01-101-8/+1
| | | | llvm-svn: 123168
* Fix CMakeLists.txt.Zhongxing Xu2011-01-102-2/+2
| | | | llvm-svn: 123167
* Revert r123160. There are linking dependency problems.Zhongxing Xu2011-01-103-4/+5
| | | | llvm-svn: 123166
* Cleanup some of the constant folding code to consistently test intrinsicChandler Carruth2011-01-101-16/+18
| | | | | | | IDs when available rather than using a mixture of IDs and textual name comparisons. llvm-svn: 123165
* fit in 80 cols and use MBB::isSuccessor instead of a handChris Lattner2011-01-101-5/+4
| | | | | | rolled std::find. llvm-svn: 123164
* Work-in-progress implementation of C++0x [temp.arg.explicit]p9, whichDouglas Gregor2011-01-1013-70/+738
| | | | | | | | | | | | | | | | | | | | | | | | | | allows an argument pack determines via explicit specification of function template arguments to be extended by further, deduced arguments. For example: template<class ... Types> void f(Types ... values); void g() { f<int*, float*>(0, 0, 0); // Types is deduced to the sequence int*, float*, int } There are a number of FIXMEs in here that indicate places where we need to implement + test retained expansions, plus a number of other places in deduction where we need to correctly cope with the explicitly-specified arguments when deducing an argument pack. Furthermore, it appears that the RecursiveASTVisitor needs to be auditied; it's missing some traversals (especially w.r.t. template arguments) that cause it not to find unexpanded parameter packs when it should. The good news, however, is that the tr1::tuple implementation now works fully, and the tr1::bind example (both from N2080) is actually working now. llvm-svn: 123163
* Unbreak the CMake build.Douglas Gregor2011-01-102-2/+2
| | | | llvm-svn: 123162
* Teach instcombine about the rest of the SSE and SSE2 conversionChandler Carruth2011-01-102-4/+66
| | | | | | intrinsics element dependencies. Reviewed by Nick. llvm-svn: 123161
* ExprEngine.cpp and AnalysisConsumer.cpp should not be in the Checkers directory.Zhongxing Xu2011-01-102-3/+3
| | | | llvm-svn: 123160
* Add some expression kinds to CheckerVisitor.def.Zhongxing Xu2011-01-102-8/+3
| | | | llvm-svn: 123159
* In C++, assignment and compound assignment operators return an lvalue.Zhongxing Xu2011-01-102-2/+14
| | | | llvm-svn: 123158
* Change the default signal setting for SIBABRT to SUPPRESS the signal. Why?Greg Clayton2011-01-101-1/+1
| | | | | | | | | | | | | | | | When debugging, if an expression hits a SIGABRT, it the expression ends up completing and stopping due the the "SIGABRT". Then the next thing that runs (another expression, or continuing the program) ends up progating the SIGABRT and causing the parent processes to die. We should probably think of a different solution where we suppress any signal that resulted due to an expression, or we modifyin the UnixSignals class to contain a row for "suppress for expression". So the settings for SIGABRT are: suppress = true, stop = true, and notify = true. llvm-svn: 123157
* The isPrefix() checking is redundant. Lvalue incremental/decremental expressionsZhongxing Xu2011-01-101-1/+1
| | | | | | are all prefixes. llvm-svn: 123156
* Simplify a bunch of isVirtualRegister() and isPhysicalRegister() logic.Jakob Stoklund Olesen2011-01-1020-43/+39
| | | | | | | | These functions not longer assert when passed 0, but simply return false instead. No functional change intended. llvm-svn: 123155
* Fold two related tests into the newly FileCheck-ized test, migratingChandler Carruth2011-01-103-33/+36
| | | | | | them to FileCheck as well. llvm-svn: 123154
* Clean up and FileCheck-ize a test.Chandler Carruth2011-01-101-19/+19
| | | | llvm-svn: 123153
* Fix Whitespace.Michael J. Spencer2011-01-103-31/+31
| | | | llvm-svn: 123152
* Support/Path: Deprecate PathV1::exists and replace all uses with ↵Michael J. Spencer2011-01-1010-13/+31
| | | | | | PathV2::fs::exists. llvm-svn: 123151
* Replace all uses of PathV1::exists with PathV2::fs::exists.Michael J. Spencer2011-01-105-42/+76
| | | | llvm-svn: 123150
* another random stab in the dark trying to fix llvm-gcc-i386-linux-selfhostChris Lattner2011-01-101-2/+4
| | | | llvm-svn: 123149
* fix typoChris Lattner2011-01-101-1/+1
| | | | llvm-svn: 123148
* Fix comment.Zhongxing Xu2011-01-101-1/+1
| | | | llvm-svn: 123147
* another (more) aggressive attempt to bring llvm-gcc-i386-linux-selfhostChris Lattner2011-01-102-4/+8
| | | | | | back to life. llvm-svn: 123146
* expand on a noteChris Lattner2011-01-101-4/+9
| | | | llvm-svn: 123145
* temporarily disable memset formation from memsets in an effort to restore ↵Chris Lattner2011-01-092-3/+7
| | | | | | buildbot stability. llvm-svn: 123144
* add a testcase I missed in previous commit.Chris Lattner2011-01-091-0/+2
| | | | llvm-svn: 123143
* typoChris Lattner2011-01-091-1/+1
| | | | llvm-svn: 123142
* xref a PR #Chris Lattner2011-01-091-22/+2
| | | | llvm-svn: 123141
* Remove TargetRegisterInfo::NoRegister.Jakob Stoklund Olesen2011-01-091-5/+10
| | | | | | | | | Fix the TargetRegisterInfo::NoRegister places where someone preferred typing 'TargetRegisterInfo::NoRegister' instead of typing '0'. Note that TableGen is already emitting xx::NoRegister in xxGenRegisterNames.inc. llvm-svn: 123140
* add a fixme: ir isn't expressive enough.Chris Lattner2011-01-091-0/+1
| | | | llvm-svn: 123139
* Step #4 in improving trip count analysis: HowFarToZero can analyzeChris Lattner2011-01-091-2/+11
| | | | | | | NUW AddRec's much more aggressively. We now get a trip count for @test2 in nsw.ll llvm-svn: 123138
* Change virtual register numbering to make more space for physical registers.Jakob Stoklund Olesen2011-01-091-19/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | The numbering plan is now: 0 NoRegister. [1;2^30) Physical registers. [2^30;2^31) Stack slots. [2^31;2^32) Virtual registers. (With -1u and -2u used by DenseMapInfo.) Each segment is filled from the left, so any mistaken interpretation should quickly cause crashes. FirstVirtualRegister has been removed. TargetRegisterInfo provides predicates conversion functions that should be used instead of interpreting register numbers manually. It is now legal to pass NoRegister to isPhysicalRegister() and isVirtualRegister(). The result is false in both cases. It is quite rare to represent stack slots in this way, so isPhysicalRegister() and isVirtualRegister() require that isStackSlot() be checked first if it can possibly return true. This allows a very fast implementation of the common predicates. llvm-svn: 123137
* rearrange some code, no functionality change.Chris Lattner2011-01-091-41/+45
| | | | llvm-svn: 123136
* Add a note about the inability to model FP -> int conversions whichChandler Carruth2011-01-091-0/+55
| | | | | | | | perform rounding other than truncation in the IR. Common C code for this turns into really an LLVM intrinsic call that blocks a lot of further optimizations. llvm-svn: 123135
* Don't crash if SpecString is an empty string.Francois Pichet2011-01-091-1/+1
| | | | llvm-svn: 123134
* Step #3 to improving trip count analysis: If we foldChris Lattner2011-01-091-4/+8
| | | | | | | | a + {b,+,stride} into {a+b,+,stride} (because a is LIV), then the resultant AddRec is NUW/NSW if the client says it is. llvm-svn: 123133
* Removed a few bad assert() statement regarding bitfields.Greg Clayton2011-01-091-2/+0
| | | | llvm-svn: 123132
* Step #2 to improve trip count analysis for loops like this:Chris Lattner2011-01-092-7/+107
| | | | | | | | | | | | | | | | | | | void f(int* begin, int* end) { std::fill(begin, end, 0); } which turns into a != exit expression where one pointer is strided and (thanks to step #1) known to not overflow, and the other is loop invariant. The observation here is that, though the IV is strided by 4 in this case, that the IV *has* to become equal to the end value. It cannot "miss" the end value by stepping over it, because if it did, the strided IV expression would eventually wrap around. Handle this by turning A != B into "A-B != 0" where the A-B part is known to be NUW. llvm-svn: 123131
* Remove MachineRegisterInfo::getLastVirtReg(), it was giving wrong resultsJakob Stoklund Olesen2011-01-094-17/+14
| | | | | | | | | | | | | | | | | | when no virtual registers have been allocated. It was only used to resize IndexedMaps, so provide an IndexedMap::resize() method such that Map.grow(MRI.getLastVirtReg()); can be replaced with the simpler Map.resize(MRI.getNumVirtRegs()); This works correctly when no virtuals are allocated, and it bypasses the to/from index conversions. llvm-svn: 123130
* sort this.Chris Lattner2011-01-091-1/+1
| | | | llvm-svn: 123129
* Teach TargetRegisterInfo how to cram stack slot indexes in with the virtual andJakob Stoklund Olesen2011-01-099-48/+58
| | | | | | | | | | | | | physical register numbers. This makes the hack used in LiveInterval official, and lets LiveInterval be oblivious of stack slots. The isPhysicalRegister() and isVirtualRegister() predicates don't know about this, so when a variable may contain a stack slot, isStackSlot() should always be tested first. llvm-svn: 123128
* Put more smarts into the RegisterContext base class. Now the base class hasGreg Clayton2011-01-0924-103/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a method: void RegisterContext::InvalidateIfNeeded (bool force); Each time this function is called, when "force" is false, it will only call the pure virtual "virtual void RegisterContext::InvalideAllRegisters()" if the register context's stop ID doesn't match that of the process. When the stop ID doesn't match, or "force" is true, the base class will clear its cached registers and the RegisterContext will update its stop ID to match that of the process. This helps make it easier to correctly flush the register context (possibly from multiple locations depending on when and where new registers are availabe) without inadvertently clearing the register cache when it doesn't need to be. Modified the ProcessGDBRemote plug-in to be much more efficient when it comes to: - caching the expedited registers in the stop reply packets (we were ignoring these before and it was causing us to read at least three registers every time we stopped that were already supplied in the stop reply packet). - When a thread has no stop reason, don't keep asking for the thread stopped info. Prior to this fix we would continually send a qThreadStopInfo packet over and over when any thread stop info was requested. We now note the stop ID that the stop info was requested for and avoid multiple requests. Cleaned up some of the expression code to not look for ClangExpressionVariable objects up by name since they are now shared pointers and we can just look for the exact pointer match and avoid possible errors. Fixed an bug in the ValueObject code that would cause children to not be displayed. llvm-svn: 123127
* Add a note about a missed FP optimization.Chandler Carruth2011-01-091-0/+24
| | | | llvm-svn: 123126
* Fix comment.Jakob Stoklund Olesen2011-01-091-5/+5
| | | | llvm-svn: 123125
* fix a few old bugs (found by inspection) where we would zap instructionsChris Lattner2011-01-091-1/+4
| | | | | | | | without informing memdep. This could cause nondeterminstic weirdness based on where instructions happen to get allocated, and will hopefully breath some life into some broken testers. llvm-svn: 123124
* Add a forgotten VireReg2IndexFunctor.Jakob Stoklund Olesen2011-01-091-1/+1
| | | | llvm-svn: 123123
* Apply -fPIC to C sources too.Oscar Fuentes2011-01-091-0/+1
| | | | llvm-svn: 123122
OpenPOWER on IntegriCloud