Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge latest changes from rework #497

Closed
wants to merge 137 commits into from

Commits on May 12, 2023

  1. Added all prototype code.

    Updated to Java 17
    ThomasHaas committed May 12, 2023
    Configuration menu
    Copy the full SHA
    3403f77 View commit details
    Browse the repository at this point in the history

Commits on May 13, 2023

  1. Configuration menu
    Copy the full SHA
    3db9825 View commit details
    Browse the repository at this point in the history

Commits on May 16, 2023

  1. Configuration menu
    Copy the full SHA
    f9664d3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    687b063 View commit details
    Browse the repository at this point in the history
  3. Updated maven.yml

    ThomasHaas committed May 16, 2023
    Configuration menu
    Copy the full SHA
    505aa98 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #444 from hernanponcedeleon/initial_prototype

    Initial prototype for rework
    ThomasHaas authored May 16, 2023
    Configuration menu
    Copy the full SHA
    e4e527d View commit details
    Browse the repository at this point in the history
  5. Added some Metadata classes (partially unused)

    Updated Event to have SourceLocation metadata
    ThomasHaas committed May 16, 2023
    Configuration menu
    Copy the full SHA
    814bfcc View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0eb1815 View commit details
    Browse the repository at this point in the history

Commits on May 17, 2023

  1. Removed unnecessary comments

    Improved documentation.
    Renamed ParseId back to OriginalId (not all programs are constructed by a parser).
    ThomasHaas committed May 17, 2023
    Configuration menu
    Copy the full SHA
    e3e4d38 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #445 from hernanponcedeleon/metadata

    Add Metadata
    ThomasHaas authored May 17, 2023
    Configuration menu
    Copy the full SHA
    bb836c9 View commit details
    Browse the repository at this point in the history

Commits on May 19, 2023

  1. Configuration menu
    Copy the full SHA
    7bcf52c View commit details
    Browse the repository at this point in the history
  2. Renamed FilterAbstract and co.

    Simplified Filter code.
    ThomasHaas committed May 19, 2023
    Configuration menu
    Copy the full SHA
    9acc647 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3ca1ed8 View commit details
    Browse the repository at this point in the history
  4. Disabled logs.

    ThomasHaas committed May 19, 2023
    Configuration menu
    Copy the full SHA
    14fa871 View commit details
    Browse the repository at this point in the history

Commits on May 21, 2023

  1. Merge pull request #447 from hernanponcedeleon/tags

    Refactored Tags
    ThomasHaas authored May 21, 2023
    Configuration menu
    Copy the full SHA
    a4bdcd7 View commit details
    Browse the repository at this point in the history

Commits on May 26, 2023

  1. Add Type

    xeren committed May 26, 2023
    Configuration menu
    Copy the full SHA
    cbb71bd View commit details
    Browse the repository at this point in the history
  2. Add ExprInterface.getType()

    Rename INonDet.getType() to .getNonDetType()
    xeren committed May 26, 2023
    Configuration menu
    Copy the full SHA
    80dc5bd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4d02db9 View commit details
    Browse the repository at this point in the history
  4. Add IValue(Type,BigInteger)

    xeren committed May 26, 2023
    Configuration menu
    Copy the full SHA
    85c6e08 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    8a7087b View commit details
    Browse the repository at this point in the history
  6. Replace INonDet(INonDetTypes,int) with INonDet(int,IntegerType,boolea…

    …n,BigInteger,BigInteger)
    xeren committed May 26, 2023
    Configuration menu
    Copy the full SHA
    9e2dfd6 View commit details
    Browse the repository at this point in the history
  7. Replace IExpr() with IExpr(Type)

    CTLZ retains its operand type
    xeren committed May 26, 2023
    Configuration menu
    Copy the full SHA
    0b51d7c View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    c4f8164 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    c5e055c View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    07bf04d View commit details
    Browse the repository at this point in the history

Commits on May 27, 2023

  1. Refactor

    xeren committed May 27, 2023
    Configuration menu
    Copy the full SHA
    981d924 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #448 from hernanponcedeleon/types0

    [Rework] ExprInterface.getType()
    ThomasHaas authored May 27, 2023
    Configuration menu
    Copy the full SHA
    0a0f2f4 View commit details
    Browse the repository at this point in the history

Commits on Jun 2, 2023

  1. Add Program.getConstants()

    Add Program.addConstant(INonDet)
    Add ProgramBuilder.newConstant(IntegerType,boolean)
    Add ProgramEncoder.encodeNondeterministicBounds()
    Add INonDet.setMin(BigInteger)
    Add INonDet.setMax(BigInteger)
    Add INonDet.setSourceName(String)
    Replace INonDet(int,IntegerType,boolean,BigInteger,BigInteger) with INonDet(int,IntegerType,boolean)
    Fix IllegalFormatConversionException in INonDet.toString()
    xeren committed Jun 2, 2023
    Configuration menu
    Copy the full SHA
    b546501 View commit details
    Browse the repository at this point in the history
  2. Register reads (rework) (#450)

    * Renamed RegReaderData to RegReader
    Updated RegReader to return a set of (new) Register.Read objects.
    Updated all the users of RegReader
    Made MemEvent a RegReader.
    
    * Removed dead comments
    Updated some comments
    Simplified DynamicPureLoopCutting code
    Simplified ExecutionModel code
    
    * Improved Join.toString
    "Fixed" a problem in ExecutionModel
    
    * Removed unnecessary "implements RegReader" from Store and Xchg
    Replaced (few) tabs by whitespaces
    
    * Fixed Xchg not returning correct address dependencies.
    Added warnings when encountering reads of uninitialized registers in an execution.
    ThomasHaas authored Jun 2, 2023
    Configuration menu
    Copy the full SHA
    22b8bfa View commit details
    Browse the repository at this point in the history
  3. Event as interface (rework) (#452)

    * Renamed RegReaderData to RegReader
    Updated RegReader to return a set of (new) Register.Read objects.
    Updated all the users of RegReader
    Made MemEvent a RegReader.
    
    * Removed dead comments
    Updated some comments
    Simplified DynamicPureLoopCutting code
    Simplified ExecutionModel code
    
    * Improved Join.toString
    "Fixed" a problem in ExecutionModel
    
    * Removed unnecessary "implements RegReader" from Store and Xchg
    Replaced (few) tabs by whitespaces
    
    * Renamed Event to AbstractEvent
    
    * Introduced Event interface
    Renamed old abstract Event class to AbstractEvent
    Updated all code to work over the Event interface
    
    * Made RegReader and RegWriter extend new Event interface
    
    * Fixed Xchg not returning correcte address dependencies.
    Added warnings when encountering reads of uninitialized registers in an execution.
    ThomasHaas authored Jun 2, 2023
    Configuration menu
    Copy the full SHA
    3280019 View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2023

  1. Configuration menu
    Copy the full SHA
    37e2909 View commit details
    Browse the repository at this point in the history
  2. Refactor

    xeren committed Jun 5, 2023
    Configuration menu
    Copy the full SHA
    e6d0199 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #453 from hernanponcedeleon/types1

    Program.getConstants() (rework)
    ThomasHaas authored Jun 5, 2023
    Configuration menu
    Copy the full SHA
    07c45f9 View commit details
    Browse the repository at this point in the history
  4. MemoryEvent as interface (#455)

    * Replaced MemEvent by an interface MemoryEvent.
    The old MemEvent class is now AbstractMemoryEvent.
    
    * Removed MemoryEvent.canRace()
    ThomasHaas authored Jun 5, 2023
    Configuration menu
    Copy the full SHA
    7d1ffc4 View commit details
    Browse the repository at this point in the history
  5. Introduced MemoryAccess class

    Updated MemoryEvent to return MemoryAccess (work-in-progress)
    Changed AbstractMemoryEvent to SingleAddressMemoryEvent, which now serves as a common implementation for all single-address memory events.
    ThomasHaas committed Jun 5, 2023
    Configuration menu
    Copy the full SHA
    eb1bfd5 View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2023

  1. Minor refactor + comments

    ThomasHaas committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    7d77c20 View commit details
    Browse the repository at this point in the history
  2. Added more TODOs

    ThomasHaas committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    a6465ee View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    903db70 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    94f2b07 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    586ebc5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ca94c2e View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    c125987 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2023

  1. Configuration menu
    Copy the full SHA
    2b1578b View commit details
    Browse the repository at this point in the history
  2. Add ExpressionFactory

    xeren committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    ab9f9a8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f4a64ae View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ee41011 View commit details
    Browse the repository at this point in the history
  5. Use ExpressionFactory

    Remove IValue.ONE and .ZERO
    Remove EventFactory.newFakeCtrlDep(Register,Label)
    Change signatures of some parser helper methods
    xeren committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    7e43c25 View commit details
    Browse the repository at this point in the history
  6. Remove deprecated methods

    xeren committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    540a2f3 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a0d8caa View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2023

  1. LlvmUnary accepts all types

    SCCP propagates constants over casts
    xeren committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    2547815 View commit details
    Browse the repository at this point in the history
  2. Fix 1 -> 0 in VisitorArm8

    xeren committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    f3e27e6 View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2023

  1. Fix GTE in makeGreaterOrEqual

    xeren committed Jun 9, 2023
    Configuration menu
    Copy the full SHA
    a242415 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4ee0a6d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    080e42c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a8e1449 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cf1bc8e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    6fceeb7 View commit details
    Browse the repository at this point in the history

Commits on Jun 12, 2023

  1. Merge ExpressionFactory.makeInteger(Expression,IntegerType) into .mak…

    …eIntegerCast(Expression,IntegerType,boolean)
    xeren committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    cc37d14 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6df8223 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    32dc564 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #460 from hernanponcedeleon/memEventPrototype

    [Prototype] Core memory events
    ThomasHaas authored Jun 12, 2023
    Configuration menu
    Copy the full SHA
    606142d View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ca9d64a View commit details
    Browse the repository at this point in the history
  6. Added MemoryOrder as metadata (for core events)

    Removed MemoryEvent.getMo()
    ThomasHaas committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    abaabb5 View commit details
    Browse the repository at this point in the history
  7. Added event/common package that contains commonly shared code in the …

    …form of abstract base classes.
    
    Updated most language-level events to use the new event/common package instead of inheriting from core events (work-in-progress)
    Added MemoryCoreEvent interface (not used yet).
    ThomasHaas committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    1b16c19 View commit details
    Browse the repository at this point in the history
  8. Merge pull request #457 from hernanponcedeleon/types2

    ExpressionFactory
    ThomasHaas authored Jun 12, 2023
    Configuration menu
    Copy the full SHA
    222d28a View commit details
    Browse the repository at this point in the history
  9. Added "withMo" methods to EventFactory to construct core events with …

    …added MemoryOrder metadata attached
    ThomasHaas committed Jun 12, 2023
    Configuration menu
    Copy the full SHA
    ff67fd4 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    61005bb View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2023

  1. Configuration menu
    Copy the full SHA
    dcf23a8 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'development_rework' into memoryAccess

    # Conflicts:
    #	dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/VisitorLitmusC.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/VisitorLitmusX86.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/boogie/VisitorBoogie.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/analysis/alias/AndersenAliasAnalysis.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/EventFactory.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/arch/lisa/RMW.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/arch/tso/Xchg.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/core/AbstractMemoryEvent.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/core/Init.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/core/Load.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/core/MemoryEvent.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/core/Store.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/core/rmw/RMWStore.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/core/rmw/RMWStoreExclusive.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicAbstract.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicCmpXchg.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicFetchOp.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicLoad.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicStore.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicXchg.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/LKMMLoad.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/LKMMLock.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/LKMMLockRead.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/LKMMLockWrite.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/LKMMStore.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/LKMMUnlock.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/RMWAbstract.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/SrcuSync.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/llvm/LlvmAbstractRMW.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/llvm/LlvmLoad.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/llvm/LlvmRMW.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/llvm/LlvmStore.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/llvm/LlvmXchg.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/pthread/Create.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/pthread/InitLock.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/pthread/Lock.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/SparseConditionalConstantPropagation.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorArm8.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorBase.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorC11.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorIMM.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorLKMM.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorPower.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorRISCV.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorTso.java
    #	dartagnan/src/test/java/com/dat3m/dartagnan/miscellaneous/AnalysisTest.java
    ThomasHaas committed Jun 13, 2023
    Configuration menu
    Copy the full SHA
    772a987 View commit details
    Browse the repository at this point in the history
  3. Fixup!

    ThomasHaas committed Jun 13, 2023
    Configuration menu
    Copy the full SHA
    191073b View commit details
    Browse the repository at this point in the history
  4. Cleaned up compilation schemes (removed mo for Power and some RISCV c…

    …ompilations)
    
    Reformatted files
    ThomasHaas committed Jun 13, 2023
    Configuration menu
    Copy the full SHA
    0889492 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d1a9b82 View commit details
    Browse the repository at this point in the history
  6. Disabled printing flag.

    ThomasHaas committed Jun 13, 2023
    Configuration menu
    Copy the full SHA
    0bfdf46 View commit details
    Browse the repository at this point in the history
  7. Made SRCU a core event (temporarily)

    Extended EventVisitor by visitMemCoreEvent
    Simplified SparseConditionalConstantPropagation again
    ThomasHaas committed Jun 13, 2023
    Configuration menu
    Copy the full SHA
    b1417f5 View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2023

  1. Implemented Feedback

    Cleaned up formatting/commenting in compilation visitors.
    ThomasHaas committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    2fc8484 View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2023

  1. Merge pull request #456 from hernanponcedeleon/memoryAccess

    Add MemoryAccess and MemoryCoreEvents
    ThomasHaas authored Jun 18, 2023
    Configuration menu
    Copy the full SHA
    8e6158d View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2023

  1. Added abstract "defaultString" method to events.

    Added CustomStringify metadata (name is subject to change).
    Event.toString now uses the metadata of available and otherwise falls back to "defaultString"
    ThomasHaas committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    565156e View commit details
    Browse the repository at this point in the history
  2. Cleaned up EventVisitor

    ThomasHaas committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    472cb7d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e61654c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6fe1983 View commit details
    Browse the repository at this point in the history
  5. Added CoreCodeVerification pass to raise an error when encountering n…

    …on-core code.
    
    This is temporarily used for debugging purposes.
    ThomasHaas committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    b5767b1 View commit details
    Browse the repository at this point in the history
  6. Added FenceBase event

    Improved error message of CoreCodeVerification
    ThomasHaas committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    48af79c View commit details
    Browse the repository at this point in the history
  7. Made LLVMFence, LKMMFence and AtomicFence subclasses of FenceBase.

    Made VisitorLKMM compile LKMMFence down to a core-level Fence.
    ThomasHaas committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    76b7b8e View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    387b7d0 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    31f12cc View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    f456e42 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    3de4fb3 View commit details
    Browse the repository at this point in the history
  12. Made C11 AtomicLoad/Store and LLVM LlvmLoad/Store inherit from LoadBa…

    …se resp. StoreBase.
    
    This reduces code duplication
    ThomasHaas committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    010cfbc View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    7f410e8 View commit details
    Browse the repository at this point in the history
  14. Improved printing of core-level RMWStores (to distinguish them from s…

    …imple stores).
    
    Made LKMMUnlock non-core.
    Enabled CoreCodeVerification.
    ThomasHaas committed Jun 19, 2023
    Configuration menu
    Copy the full SHA
    2cc36ca View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    4ff91bd View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    e2264d1 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2023

  1. Configuration menu
    Copy the full SHA
    6132740 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    73774be View commit details
    Browse the repository at this point in the history
  3. Added EventUser interface

    Made CondJump, ExecutionStatus, EndAtomic, and RMWStore EventUsers
    Extended Event to be able to track users.
    ThomasHaas committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    62b24c7 View commit details
    Browse the repository at this point in the history
  4. Added missing Event.registerUser calls to EventUsers.

    Cleaned up CondJumps usage "Label.getJumpSet"
    ThomasHaas committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    b427850 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6e13c0c View commit details
    Browse the repository at this point in the history
  6. Implemented Feedback

    ThomasHaas committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    55514bf View commit details
    Browse the repository at this point in the history
  7. Merge pull request #462 from hernanponcedeleon/eventPrinter&reducedCore

    Event printer & reduced core
    ThomasHaas authored Jun 20, 2023
    Configuration menu
    Copy the full SHA
    8fe4c67 View commit details
    Browse the repository at this point in the history
  8. Added Event.detach and Event.tryDelete

    Reduced usages of Event.setSuccessor and Event.getSuccessor to instead use Event.insertAfter if possible.
    ThomasHaas committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    08a5d03 View commit details
    Browse the repository at this point in the history
  9. Merge branch 'development_rework' into eventUser

    # Conflicts:
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/core/AbstractEvent.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/core/CondJump.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/svcomp/EndAtomic.java
    ThomasHaas committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    1a9255a View commit details
    Browse the repository at this point in the history
  10. Added Thread.toString

    Added a new error raised by ProgramBuilder.addChild when accidentally adding an already added event.
    ThomasHaas committed Jun 20, 2023
    Configuration menu
    Copy the full SHA
    9ed4fee View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2023

  1. Fixed and simplified implementations of EventUser.updateReferences vi…

    …a new EventUser.moveUserReference helper function.
    
    Fixed CondJump automatically setting a thread on construction.
    ThomasHaas committed Jun 21, 2023
    Configuration menu
    Copy the full SHA
    8cd7717 View commit details
    Browse the repository at this point in the history
  2. Simplified Event.setSuccessor/getSuccessor: These should ONLY be used…

    … under special circumstances.
    
    Added Event.forceDelete and replaced some usages by Event.tryDelete (work-in-progress)
    ThomasHaas committed Jun 21, 2023
    Configuration menu
    Copy the full SHA
    abf11a4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f785a15 View commit details
    Browse the repository at this point in the history
  4. Cleanup

    ThomasHaas committed Jun 21, 2023
    Configuration menu
    Copy the full SHA
    f5bd595 View commit details
    Browse the repository at this point in the history
  5. Merge pull request #464 from hernanponcedeleon/eventUser

    Event user & more robust CFG handling
    ThomasHaas authored Jun 21, 2023
    Configuration menu
    Copy the full SHA
    a331d02 View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2023

  1. Merge branch 'development' into merge

    # Conflicts:
    #	dartagnan/src/main/java/com/dat3m/dartagnan/encoding/WmmEncoder.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/utils/ProgramBuilder.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/core/ExecutionStatus.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/RMWAbstract.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/visitors/EventVisitor.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorPower.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorRISCV.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/wmm/analysis/RelationAnalysis.java
    ThomasHaas committed Jun 22, 2023
    Configuration menu
    Copy the full SHA
    1d46464 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2db8ef7 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #468 from hernanponcedeleon/merge

    Merge development into development_rework
    ThomasHaas authored Jun 22, 2023
    Configuration menu
    Copy the full SHA
    0e10cdd View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2023

  1. Configuration menu
    Copy the full SHA
    e21ad42 View commit details
    Browse the repository at this point in the history
  2. Cleaned up C11 atomics

    ThomasHaas committed Jun 24, 2023
    Configuration menu
    Copy the full SHA
    f6c5260 View commit details
    Browse the repository at this point in the history
  3. Cleaned up LKMM atomics

    ThomasHaas committed Jun 24, 2023
    Configuration menu
    Copy the full SHA
    9d0b12a View commit details
    Browse the repository at this point in the history
  4. Refactor & renaming of LKMM atomics.

    Renamed RMWFetchOpBase.java to RMWOpResultBase to clearly communicate that it is more generally usable.
    ThomasHaas committed Jun 24, 2023
    Configuration menu
    Copy the full SHA
    3ff5e2a View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2023

  1. Configuration menu
    Copy the full SHA
    b44f299 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9e502b3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8b266bd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    5d9b4c1 View commit details
    Browse the repository at this point in the history
  5. Cleaned up PTX atomics

    ThomasHaas committed Jun 25, 2023
    Configuration menu
    Copy the full SHA
    7e5607b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    2dde2f9 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    c9b9da1 View commit details
    Browse the repository at this point in the history
  8. Merge pull request #475 from hernanponcedeleon/rmwBase

    Rmw base classes & refactor
    ThomasHaas authored Jun 25, 2023
    Configuration menu
    Copy the full SHA
    6a254a7 View commit details
    Browse the repository at this point in the history
  9. Merge branch 'development' into test_merge

    # Conflicts:
    #	.github/workflows/maven.yml
    #	dartagnan/src/main/java/com/dat3m/dartagnan/expression/processing/ExprSimplifier.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/parsers/cat/VisitorBase.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/VisitorLitmusC.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/VisitorLitmusPTX.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/boogie/VisitorBoogie.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/analysis/alias/AndersenAliasAnalysis.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/EventFactory.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/arch/lisa/RMW.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/arch/ptx/AtomOp.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/arch/ptx/FenceWithId.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/arch/ptx/RedOp.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/arch/tso/Xchg.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/RMWAbstract.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicAbstract.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicCmpXchg.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicFetchOp.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicLoad.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicStore.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicThreadFence.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/catomic/AtomicXchg.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/LKMMFence.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/LKMMLoad.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/LKMMLock.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/LKMMStore.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/LKMMUnlock.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/RMWAddUnless.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/RMWCmpXchg.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/RMWFetchOp.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/RMWOp.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/RMWOpAndTest.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/RMWOpReturn.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/linux/RMWXchg.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/llvm/LlvmAbstractRMW.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/llvm/LlvmCmpXchg.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/llvm/LlvmRMW.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/lang/llvm/LlvmXchg.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/event/visitors/EventVisitor.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/CoreCodeVerification.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/RemoveDeadCondJumps.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/Simplifier.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/SparseConditionalConstantPropagation.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorArm8.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorBase.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorC11.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorIMM.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorLKMM.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorPTX.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorPower.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorRISCV.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/compilation/VisitorTso.java
    #	dartagnan/src/main/java/com/dat3m/dartagnan/program/specification/AssertBasic.java
    ThomasHaas committed Jun 25, 2023
    Configuration menu
    Copy the full SHA
    ff5221b View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2023

  1. Generic Registers (Rework) (#471)

    * Remove BExpr.isFalse(), BExpr.isTrue()
    
    Remove BConst.FALSE, BConst.TRUE
    
    * Remove IExpr.getBase()
    
    * Remove IExpr.isInteger() and .isBV()
    
    * Remove usage of IExpr
    
    * Register is no IExpr
    
    * Add encoding of boolean data
    
    * fixup! Fix GTE in makeGreaterOrEqual
    
    * Add ExpressionFactory.makeCast(Expression,Type)
    
    Rename .makeBoolean(Expression) into makeBooleanCast
    xeren authored Jun 28, 2023
    Configuration menu
    Copy the full SHA
    e81e154 View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2023

  1. Functions (Part 1) (#470)

    Added functions + function-specific events (e.g. Return and Call)
    Simplified BoogieVisitor and related parsing classes.
    ThomasHaas authored Jun 29, 2023
    Configuration menu
    Copy the full SHA
    f6cd58a View commit details
    Browse the repository at this point in the history

Commits on Jul 4, 2023

  1. Parsing & thread creation (#479)

    * Made FunctionType constructible via TypeFactory
    Added new Normalizer class to allow for normalization/canonicalization of object instances
    
    * Simplified ProgramBuilder and made it more robust
    Fixed PTX litmus test that referenced undefined threads.
    
    * Added ProgramBuilder factory methods
    All parser visitors now create a ProgramBuilder with correct source language and target architecture set.
    
    * Threads now always require a function type (automatically provided by the ProgramBuilder)
    
    * Added SymbolTable class (just a HashMap with String keys for now).
    Improved function validation done by ProgramBuilder.
    
    * Added VisitorBoogie.getOrNewEndOfScopeLabel and ProgramBuilder.getEndOfThreadLabel
    
    * Transformed helper classes to records and moved them to VisitorBoogie.
    
    * Removed VisitorBoogie.currentThread
    
    * Added Event.replaceAllUsages
    Use Event.replaceAllUsages in Compilation of pthread_create
    Removed matcher annotation events
    
    * Reworked pthread_create/join handling to more closely reflect their real semantics.
    ThomasHaas authored Jul 4, 2023
    Configuration menu
    Copy the full SHA
    7278dd2 View commit details
    Browse the repository at this point in the history
  2. Type Safety (rework) (#478)

    Added proper type checks and conversions to avoid implicit casts:
    
    * Outline EncodingContext.makeVariable(String,Type)
    
    * SmackPredicates create integer casts
    
    * Start expects boolean register
    
    * RMWCmpXchgBase expects boolean register
    
    * Add Function.getOrNewRegister(String,Type)
    
    * Assertions use boolean registers
    
    * AtomicCmpXchg uses boolean registers
    
    * Add type-safety
    
    * Remove ambiguously-typed integer value factories.
    
    * Fix type-unsafe assignments in LKMM-related parser and compiler
    
    * Fix type-unsafe assignments in LKMMAddUnless and LKMMOpAndTest
    
    * Fix model value parser in WitnessGraph
    
    Fix type-unsafe assignments in  VisitorLitmusLISA
    
    * Fixup
    
    ---------
    
    Co-authored-by: Thomas Haas <[email protected]>
    xeren and ThomasHaas authored Jul 4, 2023
    Configuration menu
    Copy the full SHA
    753837c View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2023

  1. Configuration menu
    Copy the full SHA
    5f9027a View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2023

  1. Inlining & Threading (rework) (#483)

    * Add Inlining
    
    * Fixes
    
    Proper renaming in Inlining
    Deep copy of DirectFunctionCall
    
    * Inlining does not skip entry
    
    * Function is an Expression
    
    * Function expressions are used in the parser.
    Pthread_create and join are parsed and calls to them are generated as expected outside of inline mode.
    
    * Simplified/Generalized parsing of special functions.
    
    * Add LlvmCmpXchg.setStructRegister(int,Register)
    
    * Add ThreadCreation
    
    * Simplified Pthread.Start event
    
    * Some fixes in ThreadCreation pass
    
    * Reworked ThreadCreation
    
    * Made VisitorBoogie recognize more functions as user-declared
    Added new Events for passing parameters across threads, and updated ThreadCreation pass to generate them.
    Updated CoreCodeVerification to recognize new threading-related events.
    Updated inlining pass to generate annotations around inlined calls.
    
    * Made VisitorBoogie recognize more functions as user-declared
    Updated Alias analysis to recognize new threading-related events
    Refactor/renaming
    
    * Added Event.replaceBy(List<Event>)
    Added new thread events to EventFactory
    Updated ThreadCreation to not generate Pthread events
    Fixed issue in ExecutionModel with boolean valued memory accesses.
    
    * Added proper tid propagation to ThreadCreation (temporary solution)
    
    * Added .bpl files for three more unit tests. These tests run correctly with the new ThreadCreation pass, but still fail without, so they are disabled for now.
    
    * Some refactoring
    
    * Added handling for thread-local variables.
    Added new thread_local.c unit test
    
    * Proper naming of generated dummy registers for thread creation
    
    * Improved printing of threads.
    Better automatic naming for nameless threads.
    
    * Fixed minor issue with undefined initialize function
    
    * Improvements in ThreadCreation
    
    * Moved static memory initialization from the parser into a pass.
    
    * Removed thread creation from parser (commented out for testing)
    Adding logging to ThreadCreation
    
    * Added parsing error when encountering main without body.
    Adding missing StaticMemoryInitializer pass into ProcessingManager
    
    * Enabled 3 more unit tests.
    First cleanup pass of Parser code (removing inline mode).
    
    * Full cleanup of Boogie parser
    
    * Deleted now unused Pthread events
    
    * Fixed ExecutionModel not recognizing new ThreadArgument event (this caused only warnings, but no semantic errors).
    
    * Various Refactoring
    
    * Fixed accidental bug
    
    * Implemented first set of feedback changes.
    
    * Removed unused code.
    Added FIXME for recursion handling
    
    ---------
    
    Co-authored-by: Thomas Haas <[email protected]>
    xeren and ThomasHaas authored Jul 11, 2023
    Configuration menu
    Copy the full SHA
    0dd7003 View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2023

  1. Inlining of nondet_int (#485)

    * Add IntrinsicsInlining
    
    * Added new nondet_loop.c code + unit test.
    
    ---------
    
    Co-authored-by: Thomas Haas <[email protected]>
    xeren and ThomasHaas authored Jul 13, 2023
    Configuration menu
    Copy the full SHA
    037ba25 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2023

  1. Configuration menu
    Copy the full SHA
    a201493 View commit details
    Browse the repository at this point in the history
  2. Various fixes/cleanup (#487)

    * Various minor fixes:
    - Add OIds in ThreadCreation
    - Copy metadata from call statements into marker events when inlining.
    - Fixed ExecutionModel printing warnings for ThreadArguments
    - Renamed FunCall/FunRet to FunCallMarker/FunReturnMarker to distinguish them from proper call/return events.
    - Made more internals of AbstractEvent private.
    
    * Fixed ExecutionStatus to work with boolean registers.
    
    * Removed unnecessary usages of ExecutionStatus.
    Use boolean type register for ExecutionStatus whenever possible.
    
    * Improved logging
    
    * Changed ExecutionGraphVisualizer to also create nodes for threading-related events.
    Increased weighting of po-edges
    
    * Added handling of pthread_exit
    
    * Changed heuristic to detect whether Smack created static initialization.
    Avoid creating memory for procedure address constants.
    
    * Refactoring.
    RelationAnalysis now logs #Relations and #Axioms
    ThomasHaas authored Jul 15, 2023
    Configuration menu
    Copy the full SHA
    0f327ea View commit details
    Browse the repository at this point in the history

Commits on Jul 27, 2023

  1. Configuration menu
    Copy the full SHA
    b9db99c View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2023

  1. Function passes & Thread creation after unrolling (#492)

    * Added FunctionProcessor interface.
    Transformed many ProgramProcessors to FunctionProcessors
    Moved ThreadCreation to after compilation and unrolling (can handle pthread_create in loops).
    
    * Included dat3m.h to some tests (+ regenerated their .bpl files).
    
    * Register now contains a Function rather than a functionId.
    Removed Register.NO_FUNCTION.
    
    * Renamed EventIdReassignment to IdReassignment. It now also reassigns function ids, making sure that threads get their Ids first.
    
    * Added Printer.Mode to only print threads, functions, or both.
    Also added short output for skipped init threads when printing.
    ThomasHaas authored Jul 28, 2023
    Configuration menu
    Copy the full SHA
    1b1dc70 View commit details
    Browse the repository at this point in the history

Commits on Aug 3, 2023

  1. Configuration menu
    Copy the full SHA
    7b07232 View commit details
    Browse the repository at this point in the history
  2. Thread cf & must edges (#494)

    Add proper control-flow dependencies between spawned threads and their spawners/creators
    ThomasHaas authored Aug 3, 2023
    Configuration menu
    Copy the full SHA
    16d4e0e View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2023

  1. Dynamic Pthread join (#496)

    * Generalized ThreadCreation to allow dynmaic joining.
    
    * Cleaned up ThreadCreation's handling of pthread_join.
    Removed unsound propagation code.
    Removed must-rf edges related to pthread_join (hard to establish and exploit with dynamic thread joins).
    ThomasHaas authored Aug 8, 2023
    Configuration menu
    Copy the full SHA
    a89dd7e View commit details
    Browse the repository at this point in the history