- Mar 12, 2013
-
-
Richard Relph authored
llvm-svn: 176881
-
David Blaikie authored
Versioned debug info support has been a burden to maintain & also compromised current debug info verification by causing test cases testing old debug info to remain rather than being updated to the latest. It also makes it hard to add or change the metadata schema by requiring various backwards-compatibility in the DI* hierarchy. So it's being removed in preparation for new changes to the schema to tidy up old/unnecessary fields and add new fields needed for new debug info (well, new to LLVM at least). The more surprising part of this is the changes to DI*::Verify - this became necessary due to the changes to AsmWriter. AsmWriter was relying on the version test to decide which bits of metadata were actually debug info when printing the comment annotations. Without the version information the tag numbers were too common & it would print debug info on random metadata that happened to start with an integer that matched a tag number. Instead this change makes the Verify functions more precise (just adding "number of operands" checks - not type checking those operands yet) & relies on that to decide which metadata is debug info metadata. llvm-svn: 176838
-
- Mar 11, 2013
-
-
Nick Lewycky authored
lower an expect intrinsic that is a constant expression. llvm-svn: 176830
-
- Mar 10, 2013
-
-
Jakub Staszak authored
llvm-svn: 176787
-
- Mar 09, 2013
-
-
Jakob Stoklund Olesen authored
PHIs are allowed to have multiple operand pairs per predecessor, and this code works just fine when it happens. llvm-svn: 176734
-
- Mar 08, 2013
-
-
Jan Wen Voung authored
Summary: Statistics are still available in Release+Asserts (any +Asserts builds), and stats can also be turned on with LLVM_ENABLE_STATS. Move some of the FastISel stats that were moved under DEBUG() back out of DEBUG(), since stats are disabled across the board now. Many tests depend on grepping "-stats" output. Move those into a orig_dir/Stats/. so that they can be marked as unsupported when building without statistics. Differential Revision: http://llvm-reviews.chandlerc.com/D486 llvm-svn: 176733
-
Jakob Stoklund Olesen authored
To find the last use of a register unit, start from the bottom and scan upwards until a user is found. <rdar://problem/13353090> llvm-svn: 176706
-
Benjamin Kramer authored
llvm-svn: 176703
-
Tom Stellard authored
llvm-svn: 176695
-
Tom Stellard authored
LegalizeDAG.cpp uses the value of the comparison operands when checking the legality of BR_CC, so DAGCombiner should do the same. v2: - Expand more BR_CC value types for NVPTX v3: - Expand correct BR_CC value types for Hexagon, Mips, and XCore. llvm-svn: 176694
-
Andrew Trick authored
This verifies live intervals both before and after scheduling. It's useful for anyone hacking on live interval update. Note that we don't yet pass verification all the time. We don't yet handle updating nonallocatable live intervals perfectly. llvm-svn: 176685
-
Bill Wendling authored
Code generation makes some basic assumptions about the IR it's been given. In particular, if there is only one 'invoke' in the function, then that invoke won't be going away. However, with the advent of the `llvm.donothing' intrinsic, those invokes may go away. If all of them go away, the landing pad no longer has any users. This confuses the back-end, which asserts. This happens with SjLj exceptions, because that's the model that modifies the IR based on there being invokes, etc. in the function. Remove any invokes of `llvm.donothing' during SjLj EH preparation. This will give us a CFG that the back-end won't be confused about. If all of the invokes in a function are removed, then the SjLj EH prepare pass won't insert the bogus code the relies upon the invokes being there. <rdar://problem/13228754&13316637> llvm-svn: 176677
-
Jakob Stoklund Olesen authored
llvm-svn: 176669
-
Jakob Stoklund Olesen authored
In very rare cases caused by irreducible control flow, the dominating block can have the same trace head without actually being part of the trace. As long as such a dominator still has valid instruction depths, it is OK to use it for computing instruction depths. Rename the function to avoid lying, and add a check that instruction depths are computed for the dominator. llvm-svn: 176668
-
- Mar 07, 2013
-
-
Chad Rosier authored
rdar://13370942 llvm-svn: 176659
-
Chad Rosier authored
rdar://13370942 llvm-svn: 176649
-
Benjamin Kramer authored
llvm-svn: 176648
-
Andrew Trick authored
llvm-svn: 176638
-
Andrew Trick authored
rdar:13370002 [pre-RA-sched] assertion: released too many times I tracked this down to an earlier hack that is no longer applicable and interfered with normal scheduler logic. With the changes in r176037, it was causing an instruction to be scheduled multiple times. I have an external test case that I tried hard to reduce and failed. I can't even reproduce with llc. llvm-svn: 176636
-
Nadav Rotem authored
llvm-svn: 176615
-
Jim Grosbach authored
Just scalarize the element and rebuild a vector of the result type from that. rdar://13281568 llvm-svn: 176614
-
Manman Ren authored
We now emit a line table for each compile unit. To reduce the prologue size of each line table, the files and directories used by each compile unit are stored in std::map<unsigned, std::vector< > > instead of std::vector< >. The prologue for a lto'ed image can be as big as 93K. Duplicating 93K for each compile unit causes a huge increase of debug info. With this patch, each prologue will only emit the files required by the compile unit. rdar://problem/13342023 llvm-svn: 176605
-
- Mar 05, 2013
-
-
Bill Wendling authored
llvm-svn: 176467
-
- Mar 02, 2013
-
-
Eli Bendersky authored
llvm-svn: 176391
-
- Mar 01, 2013
-
-
Akira Hatanaka authored
llvm-svn: 176378
-
Chad Rosier authored
handle indirect register inputs. rdar://13322011 llvm-svn: 176367
-
Michael Liao authored
- ISD::SHL/SRL/SRA must have either both scalar or both vector operands but TLI.getShiftAmountTy() so far only return scalar type. As a result, backend logic assuming that breaks. - Rename the original TLI.getShiftAmountTy() to TLI.getScalarShiftAmountTy() and re-define TLI.getShiftAmountTy() to return target-specificed scalar type or the same vector type as the 1st operand. - Fix most TICG logic assuming TLI.getShiftAmountTy() a simple scalar type. llvm-svn: 176364
-
Andrew Trick authored
llvm-svn: 176316
-
Andrew Trick authored
We avoided computing DAG height/depth during Node printing because it shouldn't depend on an otherwise valid DAG. But this has become far too annoying for the common case of a valid DAG where we want to see valid values. If doing the computation on-the-fly turns out to be a problem in practice, then I'll add a mode to the diagnostics to only force it when we're likely to have a valid DAG, otherwise explicitly print INVALID instead of bogus numbers. For now, just go for it all the time. llvm-svn: 176314
-
Eli Bendersky authored
SelectionDAGIsel::LowerArguments needs a function, not a basic block. So it makes sense to pass it the function instead of extracting a basic-block from the function and then tossing it. This is also more self-documenting (functions have arguments, BBs don't). In addition, added comments to a couple of Select* methods. llvm-svn: 176305
-
- Feb 28, 2013
-
-
Benjamin Kramer authored
We make the cost for calling libm functions extremely high as emitting the calls is expensive and causes spills (on x86) so performance suffers. We still vectorize important calls like ceilf and friends on SSE4.1. and fabs. Differential Revision: http://llvm-reviews.chandlerc.com/D466 llvm-svn: 176287
-
Eli Bendersky authored
other per-instruction statistics. llvm-svn: 176273
-
Eric Christopher authored
a few lines above. llvm-svn: 176224
-
Eric Christopher authored
llvm-svn: 176223
-
Eric Christopher authored
llvm-svn: 176222
-
Manman Ren authored
definition DIE (TAG_variable), and put AT_MIPS_linkage_name to TAG_member when DarwinGDBCompat is true. Darwin GDB needs AT_MIPS_linkage_name at both places to work. Follow-up patch to r176143. rdar://problem/13291234 llvm-svn: 176220
-
- Feb 27, 2013
-
-
Nadav Rotem authored
llvm-svn: 176218
-
Nadav Rotem authored
The FastISEL should be fast. But when we record statistics we use atomic operations to increment the counters. This patch disables the counters on non-debug builds. This reduces the runtime of SelectionDAGISel::SelectCodeCommon by ~5%. llvm-svn: 176214
-
Michael Ilseman authored
llvm-svn: 176204
-
Manman Ren authored
CurrentCallSite to avoid an assertion failure: assert(MMI.getCurrentCallSite() == 0 && "Overlapping call sites!"); rdar://problem/13228754 llvm-svn: 176154
-