- Nov 09, 2011
-
-
Duncan Sands authored
dragonegg self-host buildbot will recover (it is complaining about object files differing between different build stages). Original commit message: Add a hack to the scheduler to disable pseudo-two-address dependencies in basic blocks containing calls. This works around a problem in which these artificial dependencies can get tied up in calling seqeunce scheduling in a way that makes the graph unschedulable with the current approach of using artificial physical register dependencies for calling sequences. This fixes PR11314. llvm-svn: 144188
-
Benjamin Kramer authored
llvm-svn: 144184
-
Devang Patel authored
llvm-svn: 144172
-
Eric Christopher authored
llvm-svn: 144169
-
Jakob Stoklund Olesen authored
During the initial RPO traversal of the basic blocks, remember the ones that are incomplete because of back-edges from predecessors that haven't been visited yet. After the initial RPO, revisit all those loop headers so the incoming DomainValues on the back-edges can be properly collapsed. This will properly fix execution domains on software pipelined code, like the included test case. llvm-svn: 144151
-
Jakob Stoklund Olesen authored
When merging two uncollapsed DomainValues, place a link to the active DomainValue from the passive DomainValue. This allows old stale references to the passive DomainValue to be updated to point to the active DomainValue. The new resolve() function finds the active DomainValue and updates the pointer. This change makes old live-out lists more useful since they may contain uncollapsed DomainValues that have since been merged into other DomainValues. llvm-svn: 144149
-
Jakob Stoklund Olesen authored
This allows clear() to be called on a DomainValue with references. llvm-svn: 144147
-
- Nov 08, 2011
-
-
Jakob Stoklund Olesen authored
There is no need to involve the LiveRegs array and kill() any longer. llvm-svn: 144133
-
Jakob Stoklund Olesen authored
No functional change. llvm-svn: 144132
-
Jakob Stoklund Olesen authored
This new function will decrement the reference count, and collapse a domain value when the last reference is gone. This simplifies DomainValue reference counting, and decouples it from the LiveRegs array. llvm-svn: 144131
-
Eric Christopher authored
and is different than the normal name. llvm-svn: 144130
-
Dan Gohman authored
basic blocks containing calls. This works around a problem in which these artificial dependencies can get tied up in calling seqeunce scheduling in a way that makes the graph unschedulable with the current approach of using artificial physical register dependencies for calling sequences. This fixes PR11314. llvm-svn: 144124
-
Jakob Stoklund Olesen authored
The old value may still be referenced by some live-out list, and we don't wan't to collapse those instructions twice. This fixes the "Can only swizzle VMOVD" assertion in some armv7 SPEC builds. <rdar://problem/10413292> llvm-svn: 144117
-
Eric Christopher authored
llvm-svn: 144105
-
Lang Hames authored
Add support for trimming constants to GetDemandedBits. This fixes some funky constant generation that occurs when stores are expanded for targets that don't support unaligned stores natively. llvm-svn: 144102
-
Pete Cooper authored
When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses llvm-svn: 144100
-
Eric Christopher authored
llvm-svn: 144099
-
Eric Christopher authored
llvm-svn: 144095
-
Eli Friedman authored
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on. Fixes PR11318. Re-commit of r144034, with an extra fix so that RemoveDeadNode doesn't blow up. llvm-svn: 144055
-
Eli Friedman authored
llvm-svn: 144044
-
Bill Wendling authored
Delete! llvm-svn: 144043
-
Jakob Stoklund Olesen authored
DomainValues that are only used by "don't care" instructions are now collapsed to the first possible execution domain after all basic blocks have been processed. This typically means the PS domain on x86. For example, the vsel_i64 and vsel_double functions in sse2-blend.ll are completely collapsed to the PS domain instead of containing a mix of execution domains created by isel. llvm-svn: 144037
-
- Nov 07, 2011
-
-
Eli Friedman authored
Add a bunch of calls to RemoveDeadNode in LegalizeDAG, so legalization doesn't get confused by CSE later on. Fixes PR11318. llvm-svn: 144034
-
Eric Christopher authored
llvm-svn: 144027
-
Jakob Stoklund Olesen authored
The enterBasicBlock() function is combining live-out values from predecessor blocks. The RPO traversal means that more predecessors have been visited when that happens, only back-edges are missing. llvm-svn: 144025
-
Eric Christopher authored
llvm-svn: 144024
-
Eric Christopher authored
llvm-svn: 144023
-
Jakob Stoklund Olesen authored
llvm-svn: 144020
-
Jakob Stoklund Olesen authored
llvm-svn: 144015
-
Jakob Stoklund Olesen authored
llvm-svn: 144014
-
Eric Christopher authored
llvm-svn: 143982
-
Eric Christopher authored
llvm-svn: 143974
-
Eric Christopher authored
Fixes a self-host error. llvm-svn: 143970
-
Richard Osborne authored
and TargetLowering::BuildUDIV(). Fixes PR11283 llvm-svn: 143964
-
Eric Christopher authored
llvm-svn: 143925
-
Eric Christopher authored
llvm-svn: 143924
-
Eric Christopher authored
to fix the types section (all types, not just global types), and testcases. The code to do the final emission is disabled by default. llvm-svn: 143923
-
Eric Christopher authored
the pubnames and pubtypes tables. LLDB can currently use this format and a full spec is forthcoming and submission for standardization is planned. A basic summary: The dwarf accelerator tables are an indirect hash table optimized for null lookup rather than access to known data. They are output into an on-disk format that looks like this: .-------------. | HEADER | |-------------| | BUCKETS | |-------------| | HASHES | |-------------| | OFFSETS | |-------------| | DATA | `-------------' where the header contains a magic number, version, type of hash function, the number of buckets, total number of hashes, and room for a special struct of data and the length of that struct. The buckets contain an index (e.g. 6) into the hashes array. The hashes section contains all of the 32-bit hash values in contiguous memory, and the offsets contain the offset into the data area for the particular hash. For a lookup example, we could hash a function name and take it modulo the number of buckets giving us our bucket. From there we take the bucket value as an index into the hashes table and look at each successive hash as long as the hash value is still the same modulo result (bucket value) as earlier. If we have a match we look at that same entry in the offsets table and grab the offset in the data for our final match. llvm-svn: 143921
-
Eric Christopher authored
llvm-svn: 143920
-
Eric Christopher authored
llvm-svn: 143919
-