|
@@ -34,11 +34,11 @@ TODO: File Manager Speedup:
|
|
3. File UIDs are created on request, not when files are opened.
|
|
3. File UIDs are created on request, not when files are opened.
|
|
These changes make it possible to efficiently have FileEntry objects for
|
|
These changes make it possible to efficiently have FileEntry objects for
|
|
files that exist on the file system, but have not been used yet.
|
|
files that exist on the file system, but have not been used yet.
|
|
-
|
|
|
|
|
|
+
|
|
Once this is done:
|
|
Once this is done:
|
|
1. DirectoryEntry gets a boolean value "has read entries". When false, not
|
|
1. DirectoryEntry gets a boolean value "has read entries". When false, not
|
|
all entries in the directory are in the file mgr, when true, they are.
|
|
all entries in the directory are in the file mgr, when true, they are.
|
|
- 2. Instead of stat'ing the file in FileManager::getFile, check to see if
|
|
|
|
|
|
+ 2. Instead of stat'ing the file in FileManager::getFile, check to see if
|
|
the dir has been read. If so, fail immediately, if not, read the dir,
|
|
the dir has been read. If so, fail immediately, if not, read the dir,
|
|
then retry.
|
|
then retry.
|
|
3. Reading the dir uses the getdirentries syscall, creating a FileEntry
|
|
3. Reading the dir uses the getdirentries syscall, creating a FileEntry
|
|
@@ -55,18 +55,18 @@ The "selection of target" behavior is defined as follows:
|
|
|
|
|
|
(1) If the user does not specify -triple, we default to the host triple.
|
|
(1) If the user does not specify -triple, we default to the host triple.
|
|
(2) If the user specifies a -arch, that overrides the arch in the host or
|
|
(2) If the user specifies a -arch, that overrides the arch in the host or
|
|
- specified triple.
|
|
|
|
|
|
+ specified triple.
|
|
|
|
|
|
//===---------------------------------------------------------------------===//
|
|
//===---------------------------------------------------------------------===//
|
|
|
|
|
|
|
|
|
|
-verifyInputConstraint and verifyOutputConstraint should not return bool.
|
|
|
|
|
|
+verifyInputConstraint and verifyOutputConstraint should not return bool.
|
|
|
|
|
|
Instead we should return something like:
|
|
Instead we should return something like:
|
|
|
|
|
|
enum VerifyConstraintResult {
|
|
enum VerifyConstraintResult {
|
|
Valid,
|
|
Valid,
|
|
-
|
|
|
|
|
|
+
|
|
// Output only
|
|
// Output only
|
|
OutputOperandConstraintLacksEqualsCharacter,
|
|
OutputOperandConstraintLacksEqualsCharacter,
|
|
MatchingConstraintNotValidInOutputOperand,
|
|
MatchingConstraintNotValidInOutputOperand,
|
|
@@ -74,7 +74,7 @@ enum VerifyConstraintResult {
|
|
// Input only
|
|
// Input only
|
|
InputOperandConstraintContainsEqualsCharacter,
|
|
InputOperandConstraintContainsEqualsCharacter,
|
|
MatchingConstraintReferencesInvalidOperandNumber,
|
|
MatchingConstraintReferencesInvalidOperandNumber,
|
|
-
|
|
|
|
|
|
+
|
|
// Both
|
|
// Both
|
|
PercentConstraintUsedWithLastOperand
|
|
PercentConstraintUsedWithLastOperand
|
|
};
|
|
};
|