summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix GCC's pedantic return-type warning -- this enum is fully covered.Chandler Carruth2012-04-101-0/+1
| | | | llvm-svn: 154399
* Remove unused variable.David Blaikie2012-04-101-1/+0
| | | | llvm-svn: 154398
* Fix a dagcombine optimization which assumes that the vsetcc result type is ↵Nadav Rotem2012-04-101-6/+13
| | | | | | | | | always of the same size as the compared values. This is ture for SSE/AVX/NEON but not for all targets. llvm-svn: 154397
* Modify the code that lowers shuffles to blends from using blendvXX to vblendXX.Nadav Rotem2012-04-106-41/+93
| | | | | | | blendv uses a register for the selection while vblend uses an immediate. On sandybridge they still have the same latency and execute on the same execution ports. llvm-svn: 154396
* Make a somewhat subtle change in the logic of block placement. SometimesChandler Carruth2012-04-101-0/+12
| | | | | | | | | | | | | | | | the loop header has a non-loop predecessor which has been pre-fused into its chain due to unanalyzable branches. In this case, rotating the header into the body of the loop in order to place a loop exit at the bottom of the loop is a Very Bad Idea as it makes the loop non-contiguous. I'm working on a good test case for this, but it's a bit annoynig to craft. I should get one shortly, but I'm submitting this now so I can begin the (lengthy) performance analysis process. An initial run of LNT looks really, really good, but there is too much noise there for me to trust it much. llvm-svn: 154395
* Transform div to mul with reciprocal only when fp imm is legal.Anton Korobeynikov2012-04-102-2/+40
| | | | | | This fixes PR12516 and uncovers one weird problem in legalize (workarounded) llvm-svn: 154394
* Fix tautological FileCheck by moving the CHECK to an extra line.Manuel Klimek2012-04-102-2/+4
| | | | llvm-svn: 154393
* Don't link lib[std]c++ when -nostdlib is specified (Solaris driver).David Chisnall2012-04-101-2/+2
| | | | | | Patch by Dmitri Shubin! llvm-svn: 154392
* Use the correct section types on Solaris for unwind data on both x86 and x86-64.David Chisnall2012-04-102-3/+9
| | | | | | Patch by Dmitri Shubin! llvm-svn: 154391
* Change the way ASan interacts with custom signal handlers.Alexander Potapenko2012-04-102-48/+8
| | | | | | | | From now on we allow the clients to override signal handlers set by ASan, but print a warning in such a case. Remove the tests for signal() and sigaction(), because they made little sense even without this change. llvm-svn: 154390
* Pass -march, -mcpu, -mfpu to linuxtools assembler.Evgeniy Stepanov2012-04-102-0/+35
| | | | llvm-svn: 154389
* Express the number of ULPs in fpaccuracy metadata as a real rather than a Duncan Sands2012-04-104-11/+7
| | | | | | rational number, eg as 2.5 rather than 5, 2. OK'd by Peter Collingbourne. llvm-svn: 154388
* Express the number of ULPs in fpaccuracy metadata as a real rather than aDuncan Sands2012-04-104-4/+48
| | | | | | rational number, eg as 2.5 rather than 5, 2. OK'd by Peter Collingbourne. llvm-svn: 154387
* Fix 12513: Loop unrolling breaks with indirect branches.Andrew Trick2012-04-106-37/+75
| | | | | | | | Take this opportunity to generalize the indirectbr bailout logic for loop transformations. CFG transformations will never get indirectbr right, and there's no point trying. llvm-svn: 154386
* whitespaceAndrew Trick2012-04-101-140/+140
| | | | llvm-svn: 154385
* EmitStopPoint already checks if we have debug info.Eric Christopher2012-04-101-1/+1
| | | | llvm-svn: 154384
* Tidy.Eric Christopher2012-04-101-2/+2
| | | | llvm-svn: 154383
* Fix for register pressure tables.Andrew Trick2012-04-101-13/+15
| | | | | | Recent refactoring introduced a bug. Fix: added buildRegUnitSets. llvm-svn: 154382
* Parsing of C++11 attributes:Richard Smith2012-04-107-43/+93
| | | | | | | | | | * Alternative tokens (such as 'compl') are treated as identifiers in attribute names. * An attribute-list can start with a comma. * An ellipsis may not be used with either of our currently-supported C++11 attributes. llvm-svn: 154381
* Added a new packet to our GDB remote protocol:Greg Clayton2012-04-105-22/+100
| | | | | | | | QListThreadsInStopReply This GDB remote query command can enable added a "threads" key/value pair to all stop reply packets so that we always get a list of all threads in each stop reply packet. It increases performance if enabled (the reply to the "QListThreadsInStopReply" is "OK") by saving us from sending to command/reply pairs (the "qfThreadInfo" and "qsThreadInfo" packets), and also helps us keep the current process state up to date. llvm-svn: 154380
* Add proper checks.Evan Cheng2012-04-101-1/+5
| | | | llvm-svn: 154379
* Make the code slightly more palatable.Evan Cheng2012-04-101-1/+5
| | | | llvm-svn: 154378
* Use std::includes instead of my own implementation.Andrew Trick2012-04-101-9/+2
| | | | | | Jakob's review. llvm-svn: 154377
* A general stability fix where we _always_ get the thread list immediately ↵Greg Clayton2012-04-102-15/+84
| | | | | | | | after we get the stop packets. We had some racy conditions where thread 1 might be sending a packet and thread 2 tries to send a packet to get the thread list and it fails and ends up with an empty list. Packets use a sequence mutex to be able to ensure when you send a packet, you get the resonse. This sequence mutex is take when the process is running, and as we exit the running state and notify our process with the stop packet, we now always get the thread ID list before we do anything and before we can run into race conditions. The next step is to have our stop reply packets send the thread list in the actual stop reply packet to avoid a 2 packet overhead of sending the qfThreadInfo + response and qfThreadInfo + response. llvm-svn: 154376
* Added a TargetRegisterInfo interface for accessing register pressure sets.Andrew Trick2012-04-101-0/+18
| | | | llvm-svn: 154375
* Added register unit sets to the target description.Andrew Trick2012-04-104-0/+292
| | | | | | | | | | This is a new algorithm that finds sets of register units that can be used to model registers pressure. This handles arbitrary, overlapping register classes. Each register class is associated with a (small) list of pressure sets. These are the dimensions of pressure affected by the register class's liveness. llvm-svn: 154374
* Added register unit weights to the target description.Andrew Trick2012-04-102-19/+352
| | | | | | | | | | | | This is a new algorithm that associates registers with weighted register units to accuretely model their effect on register pressure. This handles registers with multiple overlapping subregisters. It is possible, but almost inconceivable that the algorithm fails to find an exact solution for a target description. If an exact solution cannot be found, an inexact, but reasonable solution will be chosen. llvm-svn: 154373
* Fix header commentAndrew Trick2012-04-101-2/+2
| | | | llvm-svn: 154372
* Add a constructor for DataRefImpl and remove excess initialization.Danil Malyshev2012-04-104-41/+8
| | | | llvm-svn: 154371
* Fix a long standing tail call optimization bug. When a libcall is emittedEvan Cheng2012-04-109-49/+89
| | | | | | | | | | | | | legalizer always use the DAG entry node. This is wrong when the libcall is emitted as a tail call since it effectively folds the return node. If the return node's input chain is not the entry (i.e. call, load, or store) use that as the tail call input chain. PR12419 rdar://9770785 rdar://11195178 llvm-svn: 154370
* Disambiguation of '[[':Richard Smith2012-04-1014-133/+412
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * In C++11, '[[' is ill-formed unless it starts an attribute-specifier. Reject array sizes and array indexes which begin with a lambda-expression. Recover by parsing the lambda as a lambda. * In Objective-C++11, either '[' could be the start of a message-send. Fully disambiguate this case: it turns out that the grammars of message-sends, lambdas and attributes do not actually overlap. Accept any occurrence of '[[' where either '[' starts a message send, but reject a lambda in an array index just like in C++11 mode. Implement a couple of changes to the attribute wording which occurred after our attributes implementation landed: * In a function-declaration, the attributes go after the exception specification, not after the right paren. * A reference type can have attributes applied. * An 'identifier' in an attribute can also be a keyword. Support for alternative tokens (iso646 keywords) in attributes to follow. And some bug fixes: * Parse attributes after declarator-ids, even if they are not simple identifiers. * Do not accept attributes after a parenthesized declarator. * Accept attributes after an array size in a new-type-id. * Partially disamiguate 'delete' followed by a lambda. More work is required here for the case where the lambda-introducer is '[]'. llvm-svn: 154369
* Two changes, Jim Ingham2012-04-101-10/+44
| | | | | | | | | | | | | | | 1) Start the PrivateStateThread stopped, and then in StartPrivateStateThread, make the private state thread and then resume it before we say the thread is created. That way we know it is listening for events by the time we get out of StartPrivateStateThread. 2) Backstop running a thread plan when calling Process::RunThreadPlan on the private state thread with a ThreadPlanBase so that running the plan doesn't pass its stop events to whatever plans happen to be above us on the thread plan stack. llvm-svn: 154368
* Clear the "m_actual_stop_info_sp" in the thread during Destroy. It might be ↵Jim Ingham2012-04-101-0/+1
| | | | | | a StopInfoThreadPlan, and that would hold onto members that need to be destroyed while the Full thread is still around. llvm-svn: 154366
* Trying to solve our disappearing thread issues by making thread list updates ↵Greg Clayton2012-04-1017-39/+43
| | | | | | | | | | | | | | | | safer. The current ProcessGDBRemote function that updates the threads could end up with an empty list if any other thread had the sequence mutex. We now don't clear the thread list when we can't access it, and we also have changed how lldb_private::Process handles the return code from the: virtual bool Process::UpdateThreadList (lldb_private::ThreadList &old_thread_list, lldb_private::ThreadList &new_thread_list) = 0; A bool is now returned to indicate if the list was actually updated or not and the lldb_private::Process class will only update the stop ID of the validity of the thread list if "true" is returned. The ProcessGDBRemote also got an extra assertion that will hopefully assert when running debug builds so we can find the source of this issue. llvm-svn: 154365
* Don't try to zExt just to check if an integer constant is zero, it mightRafael Espindola2012-04-102-2/+20
| | | | | | not fit in a i64. llvm-svn: 154364
* Fix the testcase :-(Rafael Espindola2012-04-101-1/+1
| | | | llvm-svn: 154363
* ARM LDR/LDRT has the same encoding collision as STR/STRT.Jim Grosbach2012-04-101-8/+7
| | | | | | Generalized logic of r154141. llvm-svn: 154362
* Fixing a problem where some uninitialized cases of vectors could cause ↵Enrico Granata2012-04-101-1/+6
| | | | | | diagnostic output from the synthetic children providers - this time the fix should work llvm-svn: 154361
* objective-c modern translator: rewriting specificFariborz Jahanian2012-04-102-0/+55
| | | | | | | implicit casts which is needed to produce good c++ code. // rdar://11202764 llvm-svn: 154360
* Test case for PR12495.Lang Hames2012-04-091-0/+34
| | | | llvm-svn: 154359
* Fix an annoying little bug I found while debugging another LTO issue. GoldRafael Espindola2012-04-092-6/+15
| | | | | | | | | requires the -plugin to come before any -plugin-opt options, we were passing them the other way around. With this one can run (for example): clang -o foo foo.c -O4 -Wl,-plugin-opt=generate-api-file llvm-svn: 154357
* Revert the 'EnableInitializing' flag. There is debate on whether we should ↵Bill Wendling2012-04-091-11/+0
| | | | | | run that pass by default in LTO. llvm-svn: 154356
* Added a packet history object to the GDBRemoteCommunication class that is ↵Greg Clayton2012-04-098-31/+291
| | | | | | always remembering the last 512 packets that were sent/received. These packets get dumped if logging gets enabled, or when the new expr lldb::DumpProcessGDBRemotePacketHistory (void *process, const char *log_file_path) global function is called. llvm-svn: 154354
* Removed an include that wasn't needed.Greg Clayton2012-04-091-1/+0
| | | | llvm-svn: 154353
* Fixed an issue that could occur when looking up functions inside of a ↵Greg Clayton2012-04-091-35/+112
| | | | | | | | namespace where if the NamespaceDecl hadn't been parsed yet, we would say a function wasn't in a namespace. Also improved the logging that happens with "log enable dwarf lookups" is enabled to show when we find matches. llvm-svn: 154352
* Rework how master plans declare themselves. Also make "PlanIsBasePlan" not ↵Jim Ingham2012-04-0912-32/+55
| | | | | | rely only on this being the bottom plan in the stack, but allow the plan to declare itself as such. llvm-svn: 154351
* Apply the scope restrictions after parsing the command line options. There ↵Bill Wendling2012-04-091-3/+3
| | | | | | may be some which are used in that function. llvm-svn: 154348
* Remove -fobjc-default-synthesize-properties as the optionFariborz Jahanian2012-04-091-3/+3
| | | | | | to c-index-test. llvm-svn: 154347
* My original patch missed the virtual-base case for destroyingJohn McCall2012-04-092-2/+19
| | | | | | | | | | | | base-class subojects. Incidentally, thinking about virtual bases makes it clear to me that we're not appropriately computing the access to the virtual base's member because we're not computing the best possible access to the virtual base at all; in fact, we're basically assuming it's public. I'll file a separate PR about that. llvm-svn: 154346
* Fix the access check performed as part of the determination of whetherJohn McCall2012-04-094-2/+69
| | | | | | | | to define a special member function as deleted so that it properly establishes an object context for the accesses to the base subobject members. llvm-svn: 154343
OpenPOWER on IntegriCloud